kamals@poc02:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vg_system -wi-ao---- 63.98g
scratch vg_system -wi-ao---- 465.66g
.
.
swap vg_system -wi-ao---- 16.00g
var vg_system -wi-ao---- 31.99g
kamals@poc02:~$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
vg_system 1 6 0 wz--n- 930.51g 296.88g
kamals@poc02:~$ df -h /scratch/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch 459G 726M 435G 1% /scratch
kamals@poc02:~$ sudo umount /scratch
kamals@poc02:~$ sudo e2fsck -f /dev/mapper/vg_system-scratch
e2fsck 1.42.13 (17-May-2015)
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
scratch: 25/30523392 files (16.0% non-contiguous), 2134330/122070016 blocks
kamals@poc02:~$ sudo resize2fs /dev/mapper/vg_system-scratch 450G
resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/mapper/vg_system-scratch to 117964800 (4k) blocks.
The filesystem on /dev/mapper/vg_system-scratch is now 117964800 (4k) blocks long.
kamals@poc02:~$ sudo lvreduce -L -9G /dev/mapper/vg_system-scratch
WARNING: Reducing active logical volume to 456.66 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce scratch? [y/n]: y
Size of logical volume vg_system/scratch changed from 465.66 GiB (119209 extents) to 456.66 GiB (116905 extents).
Logical volume scratch successfully resized.
kamals@poc02:~$ sudo mount /dev/mapper/vg_system-scratch /scratch/
kamals@poc02:~$ lsblk | grep scratch
├─vg_system-scratch 252:4 0 456.7G 0 lvm /scratch
kamals@poc02:~$
kamals@poc02:~$ df -h /scratch/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch 443G 727M 420G 1% /scratch
kamals@poc02:~$
SWAP Space extend:
===================
kamals@poc02:~$ lsblk | grep swap
├─vg_system-swap 252:1 0 16G 0 lvm [SWAP]
kamals@poc02:~$ sudo swapoff /dev/vg_system/swap
kamals@poc02:~$
kamals@poc02:~$ sudo lvresize -L+9G /dev/vg_system/swap
Size of logical volume vg_system/swap changed from 16.00 GiB (4095 extents) to 25.00 GiB (6399 extents).
Logical volume swap successfully resized.
kamals@poc02:~$ sudo mkswap /dev/vg_system/swap
mkswap: /dev/vg_system/swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 25 GiB (26839347200 bytes)
no label, UUID=5fbefbfc-b0fc-46d5-8d5e-b547c184ac14
kamals@poc02:~$ sudo swapon /dev/vg_system/swap
kamals@poc02:~$
kamals@poc02:~$ free -th | grep -i swap
Swap: 24G 0B 24G
kamals@poc02:~$
kamals@poc02:~$ lsblk | grep swap
├─vg_system-swap 252:1 0 25G 0 lvm [SWAP]
/scratch
ここでは、データディスクを減らして9G
スペースを増やしましたSWAP
。
ここでは、LVMの縮小が/scratch
期待どおりに機能するのがわかります(465.66G-9G ~= 456.7G)
が、なぜFSサイズが縮小しているのでしょうかdf -h
。443G
459G
9G
再び減少する1G
と、df値が428G
。
kamals@poc02:~$ df -h /scratch/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch 428G 727M 405G 1% /scratch
kamals@poc02:~$
いくつかの質問があります。
私がここで何か間違っているのでしょうか?
このステップは正しいですか?ダウンタイムのある本番サーバーでこれを実装できますか?
これらの手順を実行すると、データが失われる可能性はありますか?
より良い解決策はありますか?
とても感謝しています!
答え1
ファイルシステムサイズとして450Gを使用してください。
$ sudo resize2fs /dev/mapper/vg_system-scratch 450G
しかし、あなたのLVはこれよりも大きいです(456.66G)。
$ sudo lvreduce -L -9G /dev/mapper/vg_system-scratch WARNING: Reducing active logical volume to 456.66 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.)
したがって、LVをさらに減らすか(450Gに)、再度呼び出すことができますresize2fs
。それ以外の場合、6.66G は未使用のままです。
実際には、ファイルシステムのサイズ変更を処理するオプションがlvreduce
あります。--resizefs
これを手動で実行しても、実際にファイルシステムをLVサイズより小さくする必要はありません。ファイルシステムに450Gを使用する場合、LVにも450Gを使用できます。しかし、分数の代わりに整数を使用すると役に立ちます。本当に456.66GiBになりたい場合は、MiBで表現する方が良いです。
その他の失われたスペースについては、tune2fs -l
ファイルシステムにルート予約(Reserved block count
!= 0)があることを確認し、その場合はを使用して変更しますtune2fs -m
。このファイルシステムのルート保存が必要ない場合、または必要ない場合。
答え2
試してlvreduce
みて--resizefs
17Gを復元しました。
kamals@poc02:~$ sudo lvs
scratch vg_system -wi-ao---- 454.66g
kamals@poc02:~$ df -h /scratch/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch 428G 727M 405G 1% /scratch
kamals@poc02:~$ sudo e2fsck -f /dev/mapper/vg_system-scratch
.
.
scratch: 25/28442624 files (16.0% non-contiguous), 2003774/113770496 blocks
kamals@poc02:~$ sudo lvreduce --resizefs -L -3G /dev/mapper/vg_system-scratch
fsck from util-linux 2.27.1
scratch: clean, 25/28442624 files, 2003774/113770496 blocks
resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/mapper/vg_system-scratch to 118400000 (4k) blocks.
The filesystem on /dev/mapper/vg_system-scratch is now 118400000 (4k) blocks long.
Size of logical volume vg_system/scratch changed from 454.66 GiB (116393 extents) to 451.66 GiB (115625 extents).
Logical volume scratch successfully resized.
kamals@poc02:~$ sudo mount /dev/mapper/vg_system-scratch /scratch/
kamals@poc02:~$ df -h /scratch/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch 445G 727M 422G 1% /scratch
kamals@poc02:~$
kamals@poc02:~$ sudo lvs
scratch vg_system -wi-ao---- 451.66g