まず、ファイルシステムが正常にバックアップされ、マウント解除されました。
その後、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には進行状況バーオプションはありません。ただし、より多くの段階でサイズを変更すると、次のことがわかります。
- fsの初期サイズを確認してください。
# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-vol_projects 19G 5.3G 13G 30% /mnt
- 削除:
# umount /mnt
- ファイルシステムを確認してください。
# 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
- 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
...しかし、この方法はもっと複雑なようです://