Linux

如何減小分區大小+ lvm

  • December 12, 2017

在 /var 上,我們在 Linux red hat 伺服器上有 101G

grep var /etc/fstab
/dev/mapper/vg10-00_var /var                    xfs     defaults        0 0

我們想把它降低到 30G

df -h /var
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg10-oo_var  101G  3.6G   98G   4% /var

所以我們這樣做:

lvreduce -L -70G /dev/mapper/vg10-00_var
WARNING: Reducing active and open logical volume to 30.87 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_var? [y/n]: y
Size of logical volume vg10/oo_var changed from 100.87 GiB (25822 extents) 
to 30.87 GiB (7902 extents).
Logical volume lv_var successfully resized.

但 xfs_grow 抱怨 - 數據大小 8091648 太小

xfs_growfs /dev/mapper/vg10-00_var
meta-data=/dev/mapper/vg10-00_var isize=256    agcount=26, agsize=1039872 blks
    =                       sectsz=512   attr=2, projid32bit=1
    =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=26441728, imaxpct=25
     =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
     =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data size 8091648 too small, old size is 26441728

為什麼?

我在這裡看到兩件事不對:

  • 您需要先縮小文件系統**,然後再**減小其邏輯卷的大小。不這樣做會破壞文件系統的大部分內容(在你的情況下/var),正如lvreduce盡職盡責地警告你的那樣。
  • XFS 文件系統無法收縮。

現在您應該擦除/var分區並從備份中重新創建它,因為它的內容無論如何都被破壞了。

引用自:https://unix.stackexchange.com/questions/410378