mkfsが遅すぎる

mkfsが遅すぎる

Virtualboxハイパーバイザーでは、ubuntu 16.04でxfsボリュームをフォーマットするのは非常に遅いですが、Nutanix内で実行されている仮想マシンではそうではありません。

Virtualbox
100GB =>秒
2TB =>秒

Nutanix(ハイパーコンバージド)
100GB => 4分
2TB => 30分以上

parted -l -s | grep "Error: * unrecognised disk label"
Error: /dev/sdg: unrecognised disk label

parted /dev/sdg mklabel gpt
Information: You may need to update /etc/fstab.

parted -- /dev/sdg mkpart primary xfs 1 -1
Information: You may need to update /etc/fstab.

time mkfs.xfs /dev/sdg1
meta-data=/dev/sdg1              isize=512    agcount=4, agsize=6553472 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0
data     =                       bsize=4096   blocks=26213888, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=12799, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

real     4m7.653s
user    0m0.004s
sys       0m0.028s

あるハイパーバイザーではドライブフォーマットに時間がかかり、mkfsもう一方のハイパーバイザーではすぐにフォーマットされるのはなぜですか?

答え1

これは、ハイパーコンバージドハイパーバイザーがSSDを使用しているためです。 mkfsコマンドは、デフォルトでNODISCARD(TRIMとも呼ばれる)形式を使用します。

トリムなしでmkfsを実行するには、-KXFSとext4-E nodiscardでこのオプションを使用します。

XFS

mkfs.xfs -K /dev/sdx 

外部4

mkfs.ext4 -E nodiscard 

警告:既存のデータがない新しいボリュームにのみ-Kまたは-Eを使用してください。

既存のデータを含むドライブで-Kまたは-Eオプションを使用すると、データが上書きされるまでスペースが無駄になります。

答え2

公式のRed Hatプロセス(Red Hat System Administration II - RH134)で、以下のようにmkfs.xfsを使用してVDOボリュームをフォーマットする場合:

# mkfs.xfs -K /dev/mapper/vdo1

明確に定義された:

「以前のmkfs.xfsコマンドの-Kオプションは、ファイルシステムで未使用のブロックがすぐに削除されるのを防ぎ、コマンドがより速く返されるようにします。」

答え3

mkfs -t xfs /dev/md6 このコマンドはUbuntuでは時間がかかり、RHELでは非常に高速です。

mkfs.xfs -K /dev/sdx 非常に高速なようですが...情報だけを出力するようです。

time mkfs.xfs -K /dev/md6 mkfs.xfs: /dev/md6 には既存のファイルシステム (xfs) が含まれているようです。 mkfs.xfs: 強制的に上書きするには、-f オプションを使用します。

実際の0m0.005sユーザー0m0.000sシステム0m0.000s

時間 mkfs.xfs -K /dev/md6 -f メタデータ=/dev/md6 isize=512 agcount=32, agsize=24416912 blks=sectsz=512 attr=2, projid32bit=1=crc=1 finobt= = 0 データ = bsize = 4096 チャンク = 781340832, imaxpct = 5 = sunit = 16 swidth = 32 blks 命名 = バージョン 2 bsize = 4096 ascii-ci = 0 ftype = 1 ログ = 内部ログ bsize = 4096 = 2 = sectsz=512 sunit=16 blks, 遅延カウント=1 realtime=none extsz=4096 ブロック=0, rtextents=0

実際の0m0.572sユーザー0m0.000sシステム0m0.188s

答え4

RHEL 7.9で同じ問題が発生しました。 Mpath で外部ストレージ SAN を使用する場合 SAN の場合 BOND または NIC チームを使用する場合、mkfs.xfx は非常に遅くなります。別のバージョンのRHEL 7.5を使用してOSを再度2回再インストールしました。同じ設定でRHEL本番に複数のサーバーがありますが、NICチーム化(ループ)はありません。新しい(問題)サーバーから削除し、完全に機能するサーバーを試してみました。 mkfsコマンドを実行すると、LUNのチャンクが削除され、実行がループで発生し、接続が外部リポジトリに変更され続けるため、非常に遅いようです。一週間インターネットで検索してRHELサポートポータルを確認しましたが、運がありませんでした。最後に、ニックチームを削除して動作しました。

関連情報