文件系统操作
概览
操作(command) |
功能 |
选项(options) |
mkfs |
创建文件系统 |
-u :最大写实例数。
-l :journal文件大小。
-f :强制格式化。 |
growfs |
格式化新扩容的chunk |
-o :扩容前chunk数。
-n :扩容后chunk数。
-f :强制格式化。 |
info |
打印元数据使用情况 |
无 |
dumpfs |
读取superblock,检查chunk header和metaobj |
-m :dump meta data (默认dump ck hdr)
-t :meta data type。
-c :chunk id。
-o :metaobj id 。 |
dumple |
读取journal中的log entry内容 |
-a :遍历整个journal。
-t :txid。
-b :btno。
-d :deno。
-i :ino。 |
mkfs
- 功能描述:在指定的磁盘设备上格式化文件系统。
- 参数说明:
-u
:最大实例个数,默认是3,最大可设置为255,可选。
-f
:强制执行格式化,可选。
- 示例:
$sudo pfs -C disk mkfs nvme1n1
$sudo pfs -C disk mkfs -f nvme1n1
$sudo pfs -C disk mkfs -u 10 nvme1n1
growfs
- 功能描述:格式化扩容后的新chunk [old, new)
- 参数说明:
-o
:格式化前的chunk数。
-n
:格式化后的chunk数。
-f
:强制执行格式化,可选。
- 示例:
$sudo pfs -C disk growfs -o 1 -n 3 nvme1n1
$sudo pfs -C disk growfs -o 1 -n 3 -f nvme1n1
info
$sudo pfs -C disk info nvme1n1
Blktag Info:
(0)allocnode: id 0, shift 0, nchild=3, nall 7680, nfree 1897, next 0
Direntry Info:
(0)allocnode: id 0, shift 0, nchild=3, nall 6144, nfree 5974, next 0
Inode Info:
(0)allocnode: id 0, shift 0, nchild=3, nall 6144, nfree 5974, next 0
dumpfs
- 功能描述:打印superblock内元数据。
- 参数说明:
-m
:打印meta,未指定则打印chunk header
-t
:指定metaobj类型,1/2/3分别对应bt/de/in
-c
:指定chunk id
-o
:指定metaobj number
- 示例:
$sudo pfs -C disk dumpfs nvme1n1
chunk 0:
ck_magic 0x5046534348
ck_chunksize 10737418240
ck_blksize 4194304
ck_sectsize 4096
ck_number 0
ck_nchunk 3
ck_checksum 2628069786
ck_physet[MT_BLKTAG].ms_nsect 80
ck_physet[MT_DIRENTRY].ms_nsect 64
ck_physet[MT_INODE].ms_nsect 64
ck_physet[MT_BLKTAG].ms_sectbda 0x1000
ck_physet[MT_DIRENTRY].ms_sectbda 0x51000
ck_physet[MT_INODE].ms_sectbda 0x91000
…………
type free used total
blktag 7668 12 7680
dentry 6141 3 6144
inode 6141 3 6144
$sudo pfs -C disk dumpfs -m -c 0 -t 3 -o 1 nvme1n1
mo_type inode
mo_number 1
mo_checksum 3315235856
mo_used 1
mo_version 0
mo_head 1
mo_tail 1
in_type 1
in_deno 1
in_flags 0
in_nlink 1
in_nblock 1
in_size 4194304
in_atime 0
in_ctime 1551271708
in_mtime 1551271708
dumple
- 功能描述:打印journal内log entry数据。
- 参数说明:
-a
:遍历journal中所有可见的log entry(默认只遍历当前有效的log entry)
-t
:指定特定的txid
-b
:指定blocktag metaobj number
-d
:指定direntry metaobj number
-i
:指定inode metaobj number
- 示例:
$sudo pfs -C disk dumple -a nvme1n1
le_txid 1
le_lsn 1
le_sector_bda 10737750016
le_obj_idx 0
le_checksum 3912500790
le_more 1
mo_type direntry
mo_number 2048
mo_checksum 1467810822
mo_used 1
mo_version 0
mo_next 0
mo_prev 2
de_dirino 0
de_ino 2048
de_name largefile
...
le_txid 2
le_lsn 6
le_sector_bda 10738012160
le_obj_idx 0
le_checksum 278390252
le_more 0
mo_type inode
mo_number 2048
mo_checksum 3233154735
mo_used 1
mo_version 0
mo_head 528385
mo_tail 528385
in_type 1
in_deno 2048
in_flags 0
in_nlink 1
in_nblock 1
in_size 0
in_atime 0
in_ctime 1551337605
in_mtime 1551337605
[PFS_LOG] Mar 6 15:25:42.498594 INF [82650] number of log entries hit: 6 / 2097152 (all in journal)
$sudo pfs -C disk dumple -t 2 -i 2048 nvme1n1
le_txid 2
le_lsn 6
le_sector_bda 10738012160
le_obj_idx 0
le_checksum 278390252
le_more 0
mo_type inode
mo_number 2048
mo_checksum 3233154735
mo_used 1
mo_version 0
mo_head 528385
mo_tail 528385
in_type 1
in_deno 2048
in_flags 0
in_nlink 1
in_nblock 1
in_size 0
in_atime 0
in_ctime 1551337605
in_mtime 1551337605
[PFS_LOG] Mar 6 15:32:03.101423 INF [105651] number of log entries hit: 1 / 6 (valid)