文章目錄
- Linux磁盤管理命令
- 使用xfs 管理命令
- 1.命令說明
- 2.建立 XFS 文件系統
- 4.調整 XFS 文件系統各項參數
- 5.在線調整 XFS 文件系統的大小
- 6.暫停和恢復 XFS 文件系統
- 7.嘗試修復受損的 XFS 文件系統
- 8.備份和恢復
- 9.碎片管理
Linux磁盤管理命令
使用xfs 管理命令
在 GNU/Linux 中,管理 XFS 的工作主要使用 xfsprogs 中的一系列工具。
1.命令說明
mkfs.xfs
:創建 XFS 文件系統。xfs_admin
:調整 XFS 文件系統的各項參數。xfs_copy
:復制 XFS 文件系統的內容到一個或多個目標系統(并行方式)。xfs_db
:調試或檢測 XFS 文件系統(查看文件系統碎片等)。xfs_check
:檢測 XFS 文件系統的完整性。xfs_bmap
:查看一個文件的塊映射。xfs_repair
:嘗試修復受損的 XFS 文件系統。xfs_fsr
:碎片整理。xfs_quota
:管理 XFS 文件系統的磁盤配額。xfs_metadump
:將 XFS 文件系統的元數據(Metadata)復制到一個文件中。xfs_mdrestore
:從一個文件中將元數據(Metadata)恢復到 XFS 文件系統。xfs_growfs
:調整 XFS 文件系統的大小(只能擴展)。xfs_freeze
:暫停(-f)和恢復(-u)XFS 文件系統。
2.建立 XFS 文件系統
1)格式化
要格式化存儲設備為 XFS 格式,可以用 root 身份執行如下命令:
#mkfs -t xfs /dev/sdb5
如果 mkfs.xfs 發現存儲設備仍有之前存放的文件資料,則會拒絕進行格式化。
# mkfs.xfs /dev/sdb5
mkfs.xfs: /dev/sdb5 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
如果確定那些資料已沒有用處,需要為 mkfs.xfs 加上選項 -f 強迫它進行格式化。
# mkfs.xfs -f /dev/sdb5
meta-data =/dev/sdb5 isize=256 agcount=4,agsize=524119 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=2096474,imaxpct=25 = sunit=0s width=0 blks
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0
2)區塊大小(Block size)
? 區塊(Block)是文件系統存儲盤中內容最小的單位,其大小對文件系統的空間運用和效 用有很大的影響。較大的區塊可以令文件系統大小上限和文件大小上限增加,也可以加快大文 件的讀/寫,但會浪費較多的空間,對平均文件大小較小的文件系統比較不利。區塊大小只可以 在格式化文件系統時設定,以后除重新格式化外不能改變。XFS 文件系統的區塊大小最少可以 為 512 字節,最大不可超過 64KB,默認為 4KB。然而區塊大小又受到作業系統內核的 page 大 小限制。在 X86 計算機中,區塊最大不可超過 4KB。其他平臺如 IA64 可以使用較大區塊, 不過過大區塊會浪費空間,所以不建議使用大于 4KB 的區塊。在選擇區塊大小時要注意以下 幾點:
- 如果文件系統小于 100MB 或有大量小型文件,建議使用 512 字節區塊,其余情況建議 使用 4KB 區塊。
- 如果用作新聞組服務器(News Server)或有大量小型文件,可以使用 512 字節文件系統 區塊和 4KB 目錄區塊(使用-nsize=大小選項)。
簡單而言,XFS 文件系統在 X86 平臺上可以使用 512B、1KB、2KB 和 4KB 區塊。格式化 顯要指定區塊大小需要使用選項“-b size=區塊大小”:
#mkfs.xfs –b size=512 /dev/sdb6
3)目錄區塊大小(Directory Block Size)
XFS 容許目錄使用比文件系統區塊大小更小的區塊,方法是使用選項“-n size=區塊大小”, 例如:
#mkfs.xfs –b size=512 –n size=4k /dev/sdb6
? 區塊大小后加上“k”表示單位為 KB(1024 字節),加上“s”表示單位為磁區(sector, 默認為 512 字節,可能會因-s 選項而改變),加上“b”表示單位為文件系統區塊(默認為 4KB, 可能會因-b 選項而改變)。
4)日志大小
? 格式化 XFS 時,mkfs.xfs 會自動根據文件系統的大小劃分日志(Journal)的大小。若文件 系統等于或超過 1TB,則劃分日志只會為最大值 128MB。最小不會小于 512 文件系統區塊。 可以使用選項“-l size=日志大小”指定日志的大小,例如:
#mkfs.xfs –l size=1024b /dev/sdb6
日志大小可以加以下單位。
s:磁區(sector)大小(默認為 512 字節,可能會因-s 選項而改變)。
b:文件系統區塊大小(默認為 4KB,可能會因-b 選項而改變)
k:KB(1 024 字節)。
m:MB(1 048 576 字節)。
g:GB(1 073 741 824 字節)。
t:TB(1 099 511 627 776 字節)。
p:PB(1024TB)。
e:EB(1 048 576TB)。
如果有多于一個硬盤,可以考慮使用外部日志(External Journal)把文件系統和日志存儲 在不同的硬盤,可以增加效能。
5)文件系統標簽(Filesystem Label)
文件系統標簽(Filesystem Label)又叫作 Volume Name,是文件系統中一個小欄目,用作 簡述該文件系統的用途或其存儲數據。可以使用選項“-L 標簽”在格式化時設定文件系統標簽。
#mkfs.xfs -L Videos /dev/sdc1
XFS 的文件系統標簽不能超過 12 個字符。以后可以使用命令 xfs_admin -L 改變。
6)一個例子 示例代碼如下:
#mkfs.xfs –d agcount=4 –l size=32m /dev/sdb5
第一個選項是-l size=32m,它告訴 mkfs.xfs 配置用戶的文件系統使之擁有一個高達 32MB 的元數據日志。這通過降低在文件系統處于繁忙使用期間元數據日志將“填滿”的可能性而改 善了性能。第二個選項通過告訴 mkfs.xfs 將創建的分配組的數目最小化,讓用戶增強新文件系 統的性能。通常,mkfs.xfs 自動選擇分配組的數目,但是,根據筆者的經驗,它通常會選擇一 個比大多數用于一般用途的 Linux 工作站和服務器過高一點的數目。分配組讓 XFS 并行執行多 個元數據操作,這為高端服務器帶來了便利,但是太多的分配組確實會增加一些開銷。因此, 不要讓 mkfs.xfs 為用戶的文件系統選擇分配組的數目,而是通過使用-d agcount=x 選項指定一 個數目。將 x 設置成一個小數目,如 4、6 或 8。需要使得目標塊設備中每 4GB 容量至少有一 個分配組。同時進行這兩項調整,使用下面的命令創建“優化的”XFS 文件系統:
# mount -t /dev/sda6 /mnt -o noatime,nodiratime,osyncisdsync
前面的兩個選項(noatime,nodiratime)關閉 atime 更新。osyncisdsync 選項調整 XFS 的同 步/異步行為,以便它同 Ext3 更一致。
3.掛載 XFS 文件系統
#mount –t xfs/dev/sdb5/xfs
其中,/xfs 是主分區/下的一個目錄。
為了讓系統啟動后就自動加載,應該更改/etc/fstab,這樣系統啟動后就會自動加載 xfs 分 區而不必每次都手工加載。添加如下一行:
/dev/hdb5 /xfs defaults 1 1
掛裝時,將使用一些性能增強 mount 選項來最大限度地發掘出(或發揮出)新文件系統的 性能。
#mount –t /dev/sdb5 /xfs –o noatime,nodiratime,osyncisdsync
前面的兩個 mount 選項關閉 atime 更新,幾乎不需要 atime 更新,并且它除了降低文件系 統性能之外幾乎不起任何作用。osyncisdsync 選項調整 XFS 的同步/異步行為,以便它同 Ext3 更一致。多虧了 mkfs.xfs 和 mount 調整,新的 XFS 文件系統比沒有調整時的性能要好得多。
其他 mount -o 選項如下。
allocsize=:延時分配時,預分配 buffered 大小。
sunit=/swidth=:使用指定的條帶單元與寬度(單位為 512Byte)。
swalloc:根據條帶寬度的邊界調整數據分配。
discard:塊設備自動回收空間。
dmapi:使能 Data Management API 事件。
inode64:創建 inode 節點位置不受限制。
inode32:inode 節點號不超過 32 位(為了兼容)。
largeio:大塊分配。
nolargeio:盡量小塊分配。
noalign:數據分配時不用條帶大小對齊。
noatime:讀取文件時不更新訪問時間。
norecovery:掛載時不運行日志恢復(只讀掛載)。
logbufs=:內存中的日志緩存區數量。
logbsize=:內存中每個日志緩存區的大小。
logdev=/rtdev=:指定日志設備或實時設備。XFS 文件系統可以分為 3 部分:數據、日志、實時(可選)。
4.調整 XFS 文件系統各項參數
1)XFS 卷標管理
(1)查看當前的卷標。
#xfs_admin -l /dev/sdb
label=""
(2)設置新的卷標。
#xfs_admin -L "VideoRecords" /dev/sdb
writing all SBs
new label="VideoRecords"
2)UIID 管理
通用唯一標識符(UUID)是 128 比特的數字,用來唯一地標識因特網上的某些對象或者 實體。傳統上,GNU/Linux 在/etc/fstab 上直接使用設備名稱(/dev/hda1 或/dev/sda5 等)指定要 掛載的存儲設備。然而設備名稱有時會因為 BIOS 的設定而改變,引起混亂。所以現在部分Linux distribution 已改用 UUID(Universal Unique Identifier)來指定要掛載的存儲設備。
(1)查看當前所有存儲設備的 UUID 名稱。
#blkid –s UUID
/dev/sda1:UUID="34dd521d-fb74-41cf-afc6-e786344ecd7a"
/dev/sda2:UUID="UskH3q-GHDB-ZLoo-kPRb-O1sq-wKSU-CwH0Lt"
/dev/mapper/rhel-root:UUID="e7e811fd-3c45-4bcd-84cb-92c4aafccf16"
/dev/sdb:UUID="36cf1092-65e2-4acd-85fc-284b1e7b1f33"
/dev/mapper/rhel-swap:UUID="800748d6-f4ae-4bc7-90d9-e69478fd4af3"
(2)查看指定存儲設備的 UUID。
#xfs_admin –u /dev/sdb
UUID=cd4f1cc4-15d8-45f7-afa4-2ae87d1db2ed
(3)生成一個新的 UUID。
#xfs_admin –U generate /dev/sdb
writing all SBs
new UUID=c1b9d5a2-f162-11cf-9ece-0020afc76f16
-U 的參數如果為 generate,則表示直接產生一個新的 UUID;如果為 nil,則表示清除文件 系統的 UUID。
#xfs_admin –U nil /dev/sda1
3)在 mount 命令中使用 UUID 掛載文件系統
使用 mount 命令掛載文件系統,可以使用選項“-U uuid”取代設備文件指定要掛載的設備。
mount –U 51f7e9a4-5154-4e29-a7a6-208417290b85 /mnt
也可以使用 UUID=uuid 取代-U 選項。
mount UUID="51f7e9a4-5154-4e29-a7a6-208417290b85" /mnt
在文件/etc/fstab 中可以使用 UUID=uuid 取代設備文件指定要掛載的設備。
UUID="e61f4197-5f00-4f4f-917c-290922a85339" /xfs defaults 0 1
UUID="51f7e9a4-5154-4e29-a7a6-208417290b85" /boot xfs defaults 0 2
5.在線調整 XFS 文件系統的大小
XFS 提供了 xfs_growfs 工具,可以在線調整 XFS 文件系統的大小。XFS 文件系統可以向 保存當前文件系統的設備上的未分配空間延伸。這個特性常與卷管理功能結合使用,因為后者 可以把多個設備合并進一個邏輯卷組,而使用硬盤分區保存 XFS 文件系統時,每個分區需要 分別擴容。
# xfs_growfs –D 1073741824 /myxfs1
# xfs_growfs –d /myxfs1
6.暫停和恢復 XFS 文件系統
(1)暫停 XFS 文件系統。
#xfs_freeze –f /myxfs
(2)恢復 XFS 文件系統。
#xfs_freeze –u /myxfs
7.嘗試修復受損的 XFS 文件系統
XFS 與 Ext3 相比的特點是并行 I/O,如果一個文件系統使用的硬盤比較多,而且總線允許 并行的話,XFS 有明顯的性能優勢。而在臺式計算機上,這個區別很不明顯。
另外,Ext3 刪除文件的速度比 XFS 要快;由于大量采用 Cache,XFS 不用 fsck,但必須保 證電源供應,突然斷電時 XFS 的損失比 Ext3 要嚴重。
# # xfs_repair –L /dev/hda13
8.備份和恢復
(1)備份文件系統。
#xfsdump-F –f /root/dump.xfs /mnt
(2)恢復文件系統。
#xfsrestore –f /root/dump.xfs /mnt
9.碎片管理
可以使用 xfs_db 命令調試或檢測 XFS 文件系統(查看文件系統碎片等)。
(1)查看碎片情況。
#xfs_db –c frag –r /dev/sda1
actual 378,idea l373,fragmentation factor 1.32%
(2)整理碎片。
#xfs_fsr /dev/sda1