まず、ファイルシステムがバックアップされ、正常にアンマウントされました。
次に、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 つが pvremoved され、仮想ハード ディスクがリサイクルされます。
この 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
、そのシグネチャが so であることがわかりますssize_t pread(int fd, void *buf, size_t count, off_t offset)
。呼び出しの最後のパラメーターは、現在読み取っているブロックのオフセットまたはポイントです。2441880231936
バイトを TB に変換すると、約 2.2 TB になり、以下に示すようにボリュームには 3.44 TB、2.2/3.34 = ~65% があります。ただし、これは現在の状況の概算にすぎません。その場合、空き領域に基づいてパーティションのサイズが最小限に抑えられるためです (resize2f -M のため)。また、ext4 (私の場合) がデータを連続したブロックに書き込むかどうかはわかりません。そのため、ディスク全体よりも作業が少なくなる可能性があります。
lv-3 vg0 -wi-ao---- <3.34t
答え2
lvresize には進行状況バーのオプションはありません。ただし、複数のステップでサイズ変更を実行すると、次のことを確認できます。
- fs の初期サイズを確認します。
# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-vol_projects 19G 5.3G 13G 30% /mnt
- アンマウント:
# umount /mnt
- fsを確認してください:
# 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
- 進行状況 (-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.
- LVの初期サイズを確認します。
# lvs vg00/vol_projects
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
vol_projects vg00 -wi-a--- 19.00g
- 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
- サイズを確認してください:
# lvs vg00/vol_projects
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
vol_projects vg00 -wi-a--- 6.00g
- マウントしてファイルシステムのサイズを確認します。
# 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
...でもこの方法はもっと複雑だと思います :/