web-dev-qa-db-ja.com

データを失うことなくLVMのサイズを変更する

2つのディスク(40 + 50)を備えたLVMを備えたCloud Linux Serwerがあります。今日は、2番目のドライブは必要ありません。将来のためにLVMを残して、ドライブを取り外したいと思います。

# vgdisplay
  --- Volume group ---
  VG Name               system
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  20
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               89.75 GiB
  PE Size               4.00 MiB
  Total PE              22977
  Alloc PE / Size       22977 / 89.75 GiB
  Free  PE / Size       0 / 0
  VG UUID               QkkfoN-Ftor-suCL-VF4J-huV2-lhWp-9K5cMx

# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/system-root ext4       88G   21G   63G  25% /
none                    tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev                    devtmpfs  485M  4.0K  485M   1% /dev
tmpfs                   tmpfs     100M  412K   99M   1% /run
none                    tmpfs     5.0M     0  5.0M   0% /run/lock
none                    tmpfs     496M     0  496M   0% /run/shm
none                    tmpfs     100M     0  100M   0% /run/user
/dev/vda1               ext2      236M   98M  127M  44% /boot

# lsblk
NAME                     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0                       11:0    1  1024M  0 rom
vda                      253:0    0    40G  0 disk
├─vda1                   253:1    0   243M  0 part /boot
├─vda2                   253:2    0     1K  0 part
└─vda5                   253:5    0  39.8G  0 part
  ├─system-root (dm-0)   252:0    0  88.8G  0 lvm  /
  └─system-swap_1 (dm-1) 252:1    0     1G  0 lvm  [SWAP]
vdb                      253:16   0    50G  0 disk
└─vdb1                   253:17   0    50G  0 part
  └─system-root (dm-0)   252:0    0  88.8G  0 lvm  /

# pvdisplay --maps
  --- Physical volume ---
  PV Name               /dev/vda5
  VG Name               system
  PV Size               39.76 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              10178
  Free PE               0
  Allocated PE          10178
  PV UUID               aUQpTn-xi1T-ygwu-emIh-I2CT-w2tp-cRUNjl

  --- Physical Segments ---
  Physical extent 0 to 9921:
    Logical volume      /dev/system/root
    Logical extents     0 to 9921
  Physical extent 9922 to 10177:
    Logical volume      /dev/system/swap_1
    Logical extents     0 to 255

  --- Physical volume ---
  PV Name               /dev/vdb1
  VG Name               system
  PV Size               50.00 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              12799
  Free PE               0
  Allocated PE          12799
  PV UUID               5IbHi7-bS0j-ZDEQ-pPfY-BGW4-PAk0-pEV8VH

  --- Physical Segments ---
  Physical extent 0 to 12798:
    Logical volume      /dev/system/root
    Logical extents     9922 to 22720

そして今、彼がコマンドlvresizeを使用したい場合

# lvresize --size -50G /dev/mapper/system-root
  WARNING: Reducing active and open logical volume to 38.75 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)

システムはデータの損失について警告します。データを失うことなくディスクを切断してスペースを削減するにはどうすればよいですか?

3
erdys

論理ボリュームのサイズを縮小する前に、ext4ファイルシステムを縮小する必要があります。ルートパーティションをアンマウントする必要があるため、ファイルシステムを縮小するには、USB/DVD Linux isoを使用してサーバーを起動し、レスキューモードを実行する必要があります。

例: https://www.thegeekdiary.com/centos-rhel-how-to-shrink-lvm-root-file-system/

2
NoNoNo

上記の NoNoNoによって提供されるリンク から、resize2fs + lvreduceコマンドは1つのライナーで実行できるため、これが最良だと思います。特にlvreduceは他の方法で吐き出すため本当に悪い警告です

これらの手順を実行する前に、必ず重要なデータをバックアップしてください。

手順は次のように再開できます。

  1. ライブCD/DVDで起動(LinuxまたはGParted Live)

  2. ルートパーティションがマウントされていないことを確認してください

    umount /dev/[partition-name]
    
  3. lVMが稼働していることを確認してください(おそらくGParted Liveでは必要ありません)

    vgchange -ay
    
  4. 掃除

    e2fsck -f /dev/[volumegou]/[logicalvolume]
    

    エラーが発生しなくなるまで繰り返し、ファイルシステムのサイズを変更しているときに問題が発生しないようにします。

  5. パーティションを減らす

    lvresize --resizefs -L [newlvsize] /dev/[volumegroup]/[logicalvolume]
    

    --resizefslvresizeには長い時間がかかります(大きなパーティションがある場合、私の1.8Tbは約5時間かかって約1.1Tbに減少しました)。コンソールでフィードバックが得られるはずです。

    注:LVM環境では、lvresizelvreduce、およびlvextendの3つのサイズ変更コマンドが提供されています。サイズ変更ではサイズを変更できます(大きいまたは小さい)、縮小では小さいサイズ(つまり、最大でX Gb)のみが許可され、拡張では大きいサイズ(つまり、少なくともX Gb)のみが許可されます。

0
Alexis Wilke