1. 程式人生 > >文件系統管理(第八章)

文件系統管理(第八章)

文件系統

1. linux文件系統類型
1.1 日誌文件系統
ext2及之前的文件系統由於是通過索引節點表來關聯硬盤上的數據塊,所以如果數據正在寫入時斷電或系統崩潰很可能導致當前的文件系統崩潰,為了避免這種情況,在ext3開始的文件系統支持日誌功能,數據在寫入時會先寫入臨時文件(journal)中,待數據全部寫入硬盤時再刪除臨時文件中的相應數據。

1.2 日誌文件系統的模式
數據模式:索引節點和文件都會寫入目錄,丟失數據風險低,但是性能差
有序模式:只有索引節點數據會寫入目錄,在文件寫完以後才會刪除,這是一個折中的方案,會有比較好的性能
回寫模式:只有索引節點數據會寫入目錄,但是不控制數據何時寫入,安全性較差

1.3 常用的日誌文件系統
ext3:支持日誌模式
ext4:在ext3基礎上加入了extent(區段)特性和block preallocation(塊預分配技術)。
xfs:支持回寫模式的日誌文件系統,性能好但是風險高,還支持在線調整文件系統大小

1.4 寫時復制文件系統
寫時復制文件技術對於當前修改的數據並不會覆蓋原來的數據,而是存放於另一個地方,即使修改完成也不會刪除原來的數據。目前使用此技術的文件系統有ZFS、btrfs。

2. 磁盤分區管理
2.1 fdisk:為linux自帶的磁盤分區工具,至多只能管理15個分區
fdisk -l [-u] [device...]:列出當前所有磁盤的詳細信息

fdisk DEV:磁盤分區管理
子命令:
h:幫助
p:顯示已有分區
n:創建分區
d:刪除分區
l:列出所有分區的ID
t:調整分區的ID
w:保存退出
q:放棄更新並退出

cat /proc/partations:查看內核是否已經識別新的分區

partx -a /dev/DEVICE:通知內核重新讀取硬盤分區表
kpartx -a /dev/DEVICE:同上
kpartx -f /dev/DEVICE:強制重新讀取,慎用

2.2 創建文件系統
mkfs.FS_TYPE /dev/DEVICE:格式化分區,創建指定的文件系統
mkfs.ext3:創建ext3文件系統

mkfs.ext4:創建ext4文件系統
mkfs.xfs:創建xfs文件系統
mkfs.btrfs:創建btrfs文件系統
mkfs.vfat:創建vfat文件系統
mkfs -t FS_TYPE /dev/DEVICE 也可以實現上述功能

mke2fs:ext系列文件系統的專用管理工具
參數:
-t{ext2|ext3|ext4}:指定文件系統類型
-b{1024|2048|4096}:指定塊大小
-L ‘Label‘ :設置便簽
-J :相當於 -t ext3
-i:為數據空間中每多少字節創建一個inode,此大小不應小於block的大小
-N:為數據空間創建多少個inode
-m:為管理人員預留的空間占據的百分比
-O FEATURE [....]:啟動指定特性
-O ^FEATURE:關閉指定特性

mkswap:創建交換分區
mkswap [options] DEVICE
-L ‘Label‘
2.3 其他常用工具
blkid:塊設備屬性信息查看
參數:
-U UUID:根據指定的UUID來查看對應的設備
-L LABEL:根據指定的LABEL來查看對應的設備

e2label:管理ext系列文件系統的LABEL
e2label DEVICE [LABEL]

tune2fs:重新設定ext系列文件系統的可調整參數的值
參數:
-l:查看指定文件系統超級快信息
-L ‘LABEL‘:修改卷標
-m #:修改預留給管理員空間的百分比
-j :將ext2升級為ext3
-O:文件系統屬性啟用或禁用
-o:調整文件系統的默認掛載選項
-U UUID:修改UUID號

dumpe2fs -h:查看超級塊信息

2.4 文件系統檢查與修復
fcsk:文件系統檢查與修復命令
格式:
fsck.FS_TYPE
fsck -t FS_TYPE
參數:
-a:自動修復錯誤
-r:交互式修復錯誤

e2fsck:ext文件系統專用修復工具
-y:自動回答為YES
-f:強制修復,慎用。

3. 邏輯卷管理
邏輯卷基礎概念:邏輯卷通過動態調整卷空間,方便磁盤空間管理,在新增磁盤設備時尤其有用
pv:物理卷
vg:卷組,多個物理卷組成卷組
lv:邏輯卷,創建文件系統的環境

3.1 邏輯卷的特性
1、快照
邏輯卷可以將指定卷復制到另一個地方,在做測試時,如果當前卷出現問題,可以直接將快照作為替代,提高高可用
2、條帶化
一個邏輯卷可以橫跨多個物理卷,不僅在方便空間管理,而且可以提高數據讀寫性能
3、鏡像
快照主要針對於數據量不大的情況,當數據量較大時可使用鏡像功能,鏡像是邏輯卷實時更新的完整副本,由於每次寫入需要執行兩次IO操作,所以鏡像會導致性能降低,但是安全性增強。
3.2 LVM管理
dm:將一個或多個低層設備組成一個邏輯設備的模塊,一般存放於/dev/dm-#
/dev/mapper/VG_NAME_LV_NAME :存放邏輯卷的目錄
/dev/VG_NAME/LV_NAME:存放邏輯卷的目錄

pv管理:
pvs:簡要顯示PV信息
pvdisplay:顯示PV詳細信息
pvcreate /dev/DEVICE:創建pv
pvremove /dev/DEVICE:刪除pv

VG管理:
vgs:簡要顯示VG細細
vgdisplay:顯示VG詳細信息
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]:創建vg
-s #[kKmMgGtTpPeE]:指定PE大小,PE為VG的最小存儲單元,相當於硬盤中的塊,一般默認為4M
VolumeGroupName:指定VG名稱
PhysicalDevicePath [PhysicalDevicePath...]:指定創建VG所用的PV
示例:
[[email protected] ~]# vgcreate VG1 /dev/sdb1 /dev/sdc1
vgremove VG_NAME:移除VG

LV管理:
lvs:簡要顯示lv信息
lvdisplay:限制lv詳細信息
lvcreate -L #[mMgGtT] -n NAME VolumeGroup:創建lv
-L #[mMgGtT]:指定lv大小
-n:指定lv名稱
VolumeGroup:指定創建lv的vg名稱
示例:
[[email protected] ~]# lvcreate -L 100G -n LV1 VG1
lvremove /dev/VG_NAME/LV_NAME:刪除lv

擴展邏輯卷
/lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
-L [+]#[mMgGtT]:指定擴展的大小,加+號表示在原有基礎上加上的空間,沒有加號表示擴展到指定大小
resizefs /dev/VG_NAME/LV_NAME:將lvextent擴容在文件系統中生效

縮減邏輯卷
# umount /dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
# mount

本文出自 “學海無涯” 博客,謝絕轉載!

文件系統管理(第八章)