首先,檔案系統已成功備份並卸載。
然後,執行了 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
調整大小完成後,將刪除其中一個磁碟區以回收虛擬硬碟。
我怎麼才能看到這個lvresize的進度?它已經運行了一個小時,並沒有拋出太多資訊。
多謝你們 :)
答案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
,您會發現它的簽名是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
- 檢查檔案系統:
# 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
……但我認為這種方式更複雜:/