lvresizeコマンドの実行の進行状況を確認するには?

lvresizeコマンドの実行の進行状況を確認するには?

まず、ファイルシステムが正常にバックアップされ、マウント解除されました。

その後、lvresizeが実行され、すでに実行中です。

lvresize --resizefs --size 1024G /dev/dbdrp/db

出力を表示します。

fsck from util-linux-ng 2.17.2
/dev/mapper/dbdrp-db: 1718907/201326592 files (0.4% non-contiguous), 92969270/805304320 blocks
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/dbdrp-db to 268435456 (4k) blocks.

ファイルシステム出力は電子です。

[root@generic-linux-hostname ~]# df -hP
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/dbdrp-db  3.0T  310G  2.7T  11% /usr/local/oracle

物理ボリュームテーブルは次のとおりです。

PV         VG       Fmt  Attr PSize  PFree
  /dev/xvdc1 dbdrp    lvm2 a--   1.50t    0
  /dev/xvdd1 dbdrp    lvm2 a--   1.50t    0

サイズ変更が完了すると、仮想ハードディスクを回復するためにボリュームの1つが削除されます。

このlvresizeの進捗状況をどのように確認できますか? 1時間実行され、多くの情報を提供していません。

とても感謝しています:)

答え1

内部の内容がわからないので、これはオーバーシュートかもしれませんが、アイデアを得るには、次のことを試すことができます。

実行中のプロセスのPIDを取得します。

pgrep -afl resize2fs
2377 resize2fs -M /dev/vg0/lv-3

ここではresize2fs、lvresizeに変更されます(実際にサイズ変更を実行するコマンドの場合)。次に、strace -e pread64,pwrite64 -p 2377コマンドが実行するシステムコールを監視して、どこで読み書きするかを確認できます。

出力は次のとおりです。

pread64(3, "<!-- ..........................."..., 1236992, 2441878626304) = 1236992
pwrite64(3, "<!-- ..........................."..., 1236992, 181592702976) = 1236992
pread64(3, "<!-- ..........................."..., 479232, 2441880231936) = 479232
pwrite64(3, "<!-- ..........................."..., 479232, 181593939968) = 479232

マニュアルページを確認すると、その署名が次のようになり、呼び出しの最後の引数がオフセットであるか、現在読んでいるブロックのポイントであることがpread64わかります。バイトをTBに変換するssize_t pread(int fd, void *buf, size_t count, off_t offset)2441880231936約2.2TBで、マイボリューム(下図)は3.44TB、2.2/3.34 = ~65%です。しかし、これは現在では近似値にすぎません。これは、使用可能なスペースに基づいてパーティションサイズを最小にするためです(resize2f -Mによる)。また、ext4(私の場合)は連続ブロックにデータを書き込むかどうかわからないので、ディスク全体よりも作業量が少なくなる可能性があります。

lv-3 vg0  -wi-ao----  <3.34t

答え2

lvresizeには進行状況バーオプションはありません。ただし、より多くの段階でサイズを変更すると、次のことがわかります。

  1. fsの初期サイズを確認してください。
# df -h /mnt
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg00-vol_projects   19G  5.3G   13G  30% /mnt
  1. 削除:
# umount /mnt
  1. ファイルシステムを確認してください。
# e2fsck -f /dev/mapper/vg00-vol_projects
e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg00-vol_projects: 13/1245184 files (0.0% non-contiguous), 1447987/4980736 blocks
  1. 進行状況(-p)オプションを使用してファイルシステムのサイズを変更します。
# resize2fs -p /dev/mapper/vg00-vol_projects 6G
resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/mapper/vg00-vol_projects to 1572864 (4k) blocks.
Begin pass 2 (max = 32768)
Relocating blocks             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 152)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/vg00-vol_projects is now 1572864 blocks long.
  1. LVの初期サイズを確認してください。
# lvs vg00/vol_projects
  LV           VG   Attr     LSize  Pool Origin Data%  Move Log Copy%  Convert
  vol_projects vg00 -wi-a--- 19.00g
  1. resizefsオプションを使用せずにLVのサイズを変更します(前の手順で実行)。
# lvresize --size 6G /dev/mapper/vg00-vol_projects
  WARNING: Reducing active logical volume to 6.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vol_projects? [y/n]: y
  Reducing logical volume vol_projects to 6.00 GiB
  Logical volume vol_projects successfully resized
  1. サイズ確認:
# lvs vg00/vol_projects
  LV           VG   Attr     LSize Pool Origin Data%  Move Log Copy%  Convert
  vol_projects vg00 -wi-a--- 6.00g
  1. fsサイズをマウントして確認します。
# mount /dev/mapper/vg00-vol_projects /mnt
# df -h /mnt
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg00-vol_projects  6.0G  5.3G  402M  94% /mnt

...しかし、この方法はもっと複雑なようです://

関連情報