XFS ファイルシステムの作成後にサイズを縮小することはできません。ただし、xfs_growfs コマンドを使ってサイズを拡大することはできます。詳細は「XFS ファイルシステムのサイズの拡大」を参照してください。したがって、縮小前にバックアップを取得し、ファイルシステムを壊したうえで領域を縮小したのち、バックアップファイルからリストアすることで対処する。
※今までのLVM関連記事はこちら。↓
手順 | 記事 |
---|---|
LVM領域作成 | 【LVM入門】LinuxのLVM領域を最短で作成する |
LVM領域削除 | 【LVM入門】LinuxのLVMで作成したディスクを削除する |
LVM領域拡張 | 【LVM入門】LinuxのLVMでディスク容量を拡張する |
LVM領域縮小 | 【LVM入門】LinuxのLVMでディスク容量を縮小する←★本記事 |
VG・LV名前変更 | 【LVM入門】LinuxのLVMで作成済みのVGやLVの名前を変更する |
LVM容量縮小手順
1. ディスクの状態確認
/mntにマウントしている/dev/mapper/vg_sdb1-lv_sdb1を4GBから2GBに縮小する。[root@localhost ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/rhel-root 14G 1.4G 13G 11% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.9M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/vg_sdb1-lv_sdb1 4.0G 33M 4.0G 1% /mnt
2. xfs領域のデータバックアップ
バックアップはxfsdump
コマンドで実施する。RHELを最小インストールした状態では導入されていないので、追加でパッケージのインストールを行う。[root@localhost Packages]# rpm -ivh xfsdump-3.1.7-1.el7.x86_64.rpm attr-2.4.46-13.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:attr-2.4.46-13.el7 ################################# [ 50%]
2:xfsdump-3.1.7-1.el7 ################################# [100%]
バックアップ前にI/Oを停止するため、アンマウントしておく。[root@localhost ~]# umount /mnt/
バックアップを取得する。最後に「SUCCESS」と表示されていればOK。[root@localhost ~]# xfsdump - /dev/vg_sdb1/lv_sdb1 | gzip > /root/backup_sdb1.gz
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0)
xfsdump: level 0 dump of localhost.localdomain:/mnt
xfsdump: dump date: Sun Feb 9 15:52:17 2020
xfsdump: session id: 04f700d5-3dc4-4528-be4d-92b4461e333e
xfsdump: session label: ""
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 21120 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 21672 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Status: SUCCESS ←★バックアップ成功
2. LV容量縮小
LVの容量縮小はlvreduce
コマンドで行う。[root@localhost ~]# lvreduce -L -2g /dev/vg_sdb1/lv_sdb1
WARNING: Reducing active logical volume to <2.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_sdb1/lv_sdb1? [y/n]: y
Size of logical volume vg_sdb1/lv_sdb1 changed from <4.00 GiB (1023 extents) to <2.00 GiB (511 extents).
Logical volume vg_sdb1/lv_sdb1 successfully resized.
[root@localhost ~]# lvdisplay /dev/vg_sdb1/lv_sdb1
--- Logical volume ---
LV Path /dev/vg_sdb1/lv_sdb1
LV Name lv_sdb1
VG Name vg_sdb1
LV UUID WBUK0w-La44-rff0-DLIY-QpWK-a72w-cfzOEF
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-02-08 19:53:50 +0900
LV Status available
# open 0
LV Size <2.00 GiB
Current LE 511
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
3. PV容量縮小
PVの容量縮小はpvresize
コマンドで行う。[root@localhost ~]# pvdisplay /dev/sdb1
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg_sdb1
PV Size <4.00 GiB / not usable 1.98 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1023
Free PE 512
Allocated PE 511
PV UUID pmrFQB-o1oh-VGLc-Aogy-tOoC-PYdz-qizm2I
[root@localhost ~]# pvresize --setphysicalvolumesize 2g /dev/sdb1
/dev/sdb1: Requested size 2.00 GiB is less than real size <4.00 GiB. Proceed? [y/n]: y
WARNING: /dev/sdb1: Pretending size is 4194304 not 8386527 sectors.
Physical volume "/dev/sdb1" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@localhost ~]# pvdisplay /dev/sdb1
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg_sdb1
PV Size <2.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 511
Free PE 0
Allocated PE 511
PV UUID pmrFQB-o1oh-VGLc-Aogy-tOoC-PYdz-qizm2I
4. パーティションの容量縮小
parted
コマンドで実施する。単位をGiBに設定しないと、きれいに容量が合わないので注意する。[root@localhost ~]# parted /dev/sdb unit MB print free
モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 4295MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
0.02MB 1.05MB 1.03MB 空き容量
1 1.05MB 4295MB 4294MB lvm
[root@localhost ~]# parted /dev/sdb unit GiB resizepart 1 2GiB
警告: Shrinking a partition can cause data loss, are you sure you want to
continue?
はい(Y)/Yes/いいえ(N)/No? y
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
[root@localhost ~]# parted /dev/sdb unit GiB print free
モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 4.00GiB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
0.00GiB 0.00GiB 0.00GiB 空き容量
1 0.00GiB 2.00GiB 2.00GiB lvm
2.00GiB 4.00GiB 2.00GiB 空き容量
5. xfs領域のデータリストア
xfsのファイルシステムが壊れている可能性が高いため、mkfs.xfs -f
コマンドを実行し、xfsファイルシステムの上書きでの再作成を行う。[root@localhost ~]# mkfs.xfs -f /dev/vg_sdb1/lv_sdb1
meta-data=/dev/vg_sdb1/lv_sdb1 isize=512 agcount=4, agsize=130816 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=523264, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
xfsrestore
コマンドでリストアする。リストアはマウントした状態にて行う。[root@localhost ~]# mount /dev/vg_sdb1/lv_sdb1 /mnt/
[root@localhost ~]# ls -l /mnt/
合計 0
[root@localhost ~]# gzip -dc /root/backup_sdb1.gz | xfsrestore - /mnt/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0)
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description:
xfsrestore: hostname: localhost.localdomain
xfsrestore: mount point: /mnt
xfsrestore: volume: /dev/mapper/vg_sdb1-lv_sdb1
xfsrestore: session time: Sun Feb 9 15:52:17 2020
xfsrestore: level: 0
xfsrestore: session label: ""
xfsrestore: media label: ""
xfsrestore: file system id: 4e681c60-916e-4d0c-a2fd-278dc611fe43
xfsrestore: session id: 04f700d5-3dc4-4528-be4d-92b4461e333e
xfsrestore: media id: 94500b5c-ad43-4ec5-9321-a9fbdc8e29d6
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 1 directories and 1 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Status: SUCCESS
[root@localhost ~]# ls -l /mnt/
合計 0
-rw-r--r--. 1 root root 0 2月 8 19:55 test.txt
リストア後のファイルシステムを確認する。2GBの容量で/mntにマウントできていることが確認できる。[root@localhost ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/rhel-root 14G 1.4G 13G 11% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.9M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/sr0 4.2G 4.2G 0 100% /media
/dev/mapper/vg_sdb1-lv_sdb1 2.0G 33M 2.0G 2% /mnt
以上で作業は完了となる。
0 件のコメント:
コメントを投稿