1. linux文件系統類型
1.1 日誌文件系統
ext2及以前的文件系統因爲是經過索引節點表來關聯硬盤上的數據塊,因此若是數據正在寫入時斷電或系統崩潰極可能致使當前的文件系統崩潰,爲了不這種狀況,在ext3開始的文件系統支持日誌功能,數據在寫入時會先寫入臨時文件(journal)中,待數據所有寫入硬盤時再刪除臨時文件中的相應數據。node
1.2 日誌文件系統的模式
數據模式:索引節點和文件都會寫入目錄,丟失數據風險低,可是性能差
有序模式:只有索引節點數據會寫入目錄,在文件寫完之後纔會刪除,這是一個折中的方案,會有比較好的性能
回寫模式:只有索引節點數據會寫入目錄,可是不控制數據什麼時候寫入,安全性較差linux
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:強制從新讀取,慎用app
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:查看超級塊信息ide
2.4 文件系統檢查與修復
fcsk:文件系統檢查與修復命令
格式:
fsck.FS_TYPE
fsck -t FS_TYPE
參數:
-a:自動修復錯誤
-r:交互式修復錯誤
e2fsck:ext文件系統專用修復工具
-y:自動回答爲YES
-f:強制修復,慎用。工具
3. 邏輯卷管理
邏輯卷基礎概念:邏輯卷經過動態調整卷空間,方便磁盤空間管理,在新增磁盤設備時尤爲有用
pv:物理卷
vg:卷組,多個物理卷組成卷組
lv:邏輯卷,建立文件系統的環境性能
3.1 邏輯卷的特性
一、快照
邏輯卷能夠將指定卷複製到另外一個地方,在作測試時,若是當前卷出現問題,能夠直接將快照做爲替代,提升高可用
二、條帶化
一個邏輯卷能夠橫跨多個物理卷,不只在方便空間管理,並且能夠提升數據讀寫性能
三、鏡像
快照主要針對於數據量不大的狀況,當數據量較大時可以使用鏡像功能,鏡像是邏輯卷實時更新的完整副本,因爲每次寫入須要執行兩次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
示例:
[root@localhost ~]# 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名稱
示例:
[root@localhost ~]# 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測試