Centos7でのLVMによるファイルシステムのオンライン拡張

今日、私はvpsをテストしていましたが、彼のテンプレートシステムのパーティション分割が悪すぎました(スプレーされませんでした)。カスタマーサービスに見てもらいたかったのですが、ただ言っただけです。そのため、このメモがあります。ちなみに、LVMを確認することもできます。

合計ハードディスク容量は30GSSD、ルートパーティションは10G、残りの20G容量は/ homeの下にマウントされます。

[ root@MyCloudServer ~]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/centos-root      8.5G  930M  7.6G  11%/    #ルートパーティションは10Gを与えました
devtmpfs                     873M     0  873M   0%/dev
tmpfs                        893M     0  893M   0%/dev/shm
tmpfs                        893M  8.2M  885M   1%/run
tmpfs                        893M     0  893M   0%/sys/fs/cgroup
/dev/xvda1                   497M  161M  337M  33%/boot
/dev/mapper/Xvdbgroup-xvdb1   20G   45M   19G   1%/home  #20Gにマウントされた別のパーティション/家の下で

私の要件は、ルートディレクトリにすべてのスペースを与えることです。結局のところ、30Gのスペースしかありません。ポイントは何ですか?まず、LVM分割の現状を確認しましょう。

[ root@MyCloudServer ~]# pvscan 
 PV /dev/xvda2   VG centos      lvm2 [9.51 GiB /40.00 MiB free]
 PV /dev/xvdb1   VG Xvdbgroup   lvm2 [20.00 GiB /96.00 MiB free]
 Total:2[29.50 GiB]/in use:2[29.50 GiB]/in no VG:0[0][root@MyCloudServer ~]# vgscan 
 Reading all physical volumes.  This may take a while...
 Found volume group "centos" using metadata type lvm2
 Found volume group "Xvdbgroup" using metadata type lvm2
[ root@MyCloudServer ~]# lvdisplay 
 - - - Logical volume ---
 LV Path                /dev/centos/swap #LVパス
 LV Name                swap #LVの名前
 VG Name                centos  #VGの名前
 LV UUID                Bs14H4-uzvw-o8NK-FwAH-6vlQ-wOR8-R7Yx0n  #LV UUID
 LV Write Access        read/write
 LV Creation host, time localhost,2015-07-2211:01:55+0800
 LV Status              available
 # open                 2
 LV Size                1.00 GiB
 Current LE             256
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:1--- Logical volume ---
 LV Path                /dev/centos/root
 LV Name                root
 VG Name                centos
 LV UUID                jH3frG-mRfk-hf0o-0KS6-rcth-aklH-BAciW4
 LV Write Access        read/write
 LV Creation host, time localhost,2015-07-2211:01:55+0800
 LV Status              available
 # open                 1
 LV Size                8.47 GiB
 Current LE             2168
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:0--- Logical volume ---
 LV Path                /dev/Xvdbgroup/xvdb1
 LV Name                xvdb1
 VG Name                Xvdbgroup
 LV UUID                4nLoAG-0xFr-1agn-K3D0-lihf-erDn-PNUx8K
 LV Write Access        read/write
 LV Creation host, time MyCloudServer,2017-08-2917:10:30+0800
 LV Status              available
 # open                 1
 LV Size                19.90 GiB
 Current LE             5095
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:2

以上の結果から、システムディスクと見なされる10Gハードディスク、データディスクと見なされる20Gハードディスクがハングアップし、PV、VG、LVの合計があります。ここで行う必要があるのは、20Gのどの部分を削除し、ルートパーティションが配置されているPVに追加することです。

LVMの削除は逆削除、つまりLVから削除し、次にVGを削除し、次にPVを削除することに注意してください。

[ root@MyCloudServer ~]# lvremove /dev/Xvdbgroup/xvdb1   #lvremoveはlvを削除し、ボリュームが使用中であることを確認します。その理由は、マウントがないからです
 Logical volume Xvdbgroup/xvdb1 contains a filesystem in use.[root@MyCloudServer ~]# umount /home/  #削除する必要があるlvをアンインストールします
[ root@MyCloudServer ~]# lvremove /dev/Xvdbgroup/xvdb1  #lvを削除
Do you really want to remove active logical volume xvdb1?[y/n]: y
 Logical volume "xvdb1" successfully removed
[ root@MyCloudServer ~]# vgdisplay  #vgを表示
 - - - Volume group ---
 VG Name               centos
 System ID             
 Format                lvm2
 Metadata Areas        1
 Metadata Sequence No  3
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                2
 Open LV               2
 Max PV                0
 Cur PV                1
 Act PV                1
 VG Size               9.51 GiB
 PE Size               4.00 MiB
 Total PE              2434
 Alloc PE / Size       2424/9.47 GiB
 Free  PE / Size       10/40.00 MiB
 VG UUID               NnqUfE-nNgq-u0tY-rmV2-J7ku-nn5S-E3l26G
   
 - - - Volume group ---
 VG Name               Xvdbgroup
 System ID             
 Format                lvm2
 Metadata Areas        1
 Metadata Sequence No  3
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                0
 Open LV               0
 Max PV                0
 Cur PV                1
 Act PV                1
 VG Size               20.00 GiB
 PE Size               4.00 MiB
 Total PE              5119
 Alloc PE / Size       0/0   
 Free  PE / Size       5119/20.00 GiB
 VG UUID               YYmS9Z-XmaO-gRi0-rIUR-e0sU-AenG-KwUSoq
   
[ root@MyCloudServer ~]# vgremove Xvdbgroup #vgを削除します
 Volume group "Xvdbgroup" successfully removed
[ root@MyCloudServer ~]# pvdisplay #PVを見る
 - - - Physical volume ---
 PV Name               /dev/xvda2
 VG Name               centos
 PV Size               9.51 GiB / not usable 3.00 MiB
 Allocatable           yes 
 PE Size               4.00 MiB
 Total PE              2434
 Free PE               10
 Allocated PE          2424
 PV UUID               lFsKe4-CXvT-KHR1-qhrV-ct6O-rvMJ-aDGoRW
   
 " /dev/xvdb1" is a newphysical volume of"20.00 GiB"--- NEW Physical volume ---
 PV Name               /dev/xvdb1
 VG Name               
 PV Size               20.00 GiB
 Allocatable           NO
 PE Size               0   
 Total PE              0
 Free PE               0
 Allocated PE          0
 PV UUID               9WiyQq-36PK-sG2m-GrUc-AuFb-0BK3-ivM11V
   
[ root@MyCloudServer ~]# pvremove /dev/xvdb1  #pvを削除する
 Labels on physical volume "/dev/xvdb1" successfully wiped

pvへのlvの削除が完了すると、拡張操作が正式に開始されます。最初にpartprobeを使用して、パーティションテーブルを再読み取りします。

[ root@MyCloudServer ~]# partprobe 
 
fdiskを使用して、20Gディスクをパーティション分割およびフォーマットします。
< pre lang="sh" line="1" escaped="true">[root@MyCloudServer ~]# fdisk /dev/xvdb #パーティション
Welcome to fdisk(util-linux 2.23.2).
 
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command(m for help): p #現在のパーティションを印刷する
 
Disk /dev/xvdb:21.5 GB,21474836480 bytes,41943040 sectors
Units = sectors of1*512=512 bytes
Sector size(logical/physical):512 bytes /512 bytes
I/O size(minimum/optimal):512 bytes /512 bytes
Disk label type: dos
Disk identifier:0x25dec84b
 
 Device Boot      Start         End      Blocks   Id  System
/dev/xvdb1            2048419430392097049683  Linux
 
Command(m for help): d  #最初のパーティションを削除します
Selected partition 1
Partition 1 is deleted
 
Command(m for help): n  #新しいパーティション
Partition type:
 p   primary(0 primary,0 extended,4 free)
 e   extended
Select(default p): p #プライマリパーティション
Partition number(1-4,default1):   #直接入力します。デフォルトは1です。
First sector(2048-41943039,default2048):  #直接入力
Using default value 2048
Last sector,+sectors or +size{K,M,G}(2048-41943039,default41943039): 
Using default value 41943039
Partition 1of type Linux and of size 20 GiB is setCommand(m for help): t #パーティションタイプを設定する
Selected partition 1
Hex code(type L to list all codes): 8e #8eはLVMです
Changed type of partition 'Linux' to 'Linux LVM'Command(m for help): w  #ハードドライブに変更を書き込む
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.[root@MyCloudServer ~]# mkfs.ext4 /dev/xvdb1  #作成したパーティションをフォーマットします
mke2fs 1.42.9(28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096(log=2)
Fragment size=4096(log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes,5242624 blocks
262131 blocks(5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2153775104160 block groups
32768 blocks per group,32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:32768,98304,163840,229376,294912,819200,884736,1605632,2654208,4096000
 
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal(32768 blocks): done
Writing superblocks and filesystem accounting information: done   

フォーマットが完了したら、LVMの作成を開始します。

[ root@MyCloudServer ~]# pvcreate /dev/xvdb1     #LVMの作成と削除が逆になります。つまり、最初にPVを作成します。
WARNING: ext4 signature detected on /dev/xvdb1 at offset 1080. Wipe it?[y/n]: y
 Wiping ext4 signature on /dev/xvdb1.
 Physical volume "/dev/xvdb1" successfully created
[ root@MyCloudServer ~]# pvscan  #xvdb1がPVを作成しましたが、VGに追加されていないことを確認してください。
 PV /dev/xvda2   VG centos   lvm2 [9.51 GiB /40.00 MiB free]
 PV /dev/xvdb1               lvm2 [20.00 GiB]
 Total:2[29.51 GiB]/in use:1[9.51 GiB]/in no VG:1[20.00 GiB][root@MyCloudServer ~]# vgextend centos /dev/xvdb1 #次に、ルートパーティションのVGを展開するために、VG名はcentosです。
 Volume group "centos" successfully extended
[ root@MyCloudServer ~]# pvscan  #追加が成功したら、xvdb1がVGcentosに追加されていることを確認します。
 PV /dev/xvda2   VG centos   lvm2 [9.51 GiB /40.00 MiB free]
 PV /dev/xvdb1   VG centos   lvm2 [20.00 GiB /20.00 GiB free]
 Total:2[29.50 GiB]/in use:2[29.50 GiB]/in no VG:0[0][root@MyCloudServer ~]# pvs #PVを見る
 PV         VG     Fmt  Attr PSize  PFree 
 /dev/xvda2 centos lvm2 a--9.51g 40.00m
 /dev/xvdb1 centos lvm2 a--20.00g 20.00g
[ root@MyCloudServer ~]# lvdisplay   #lvを見る
 - - - Logical volume ---
 LV Path                /dev/centos/swap
 LV Name                swap
 VG Name                centos
 LV UUID                Bs14H4-uzvw-o8NK-FwAH-6vlQ-wOR8-R7Yx0n
 LV Write Access        read/write
 LV Creation host, time localhost,2015-07-2211:01:55+0800
 LV Status              available
 # open                 2
 LV Size                1.00 GiB
 Current LE             256
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:1--- Logical volume ---
 LV Path                /dev/centos/root
 LV Name                root
 VG Name                centos
 LV UUID                jH3frG-mRfk-hf0o-0KS6-rcth-aklH-BAciW4
 LV Write Access        read/write
 LV Creation host, time localhost,2015-07-2211:01:55+0800
 LV Status              available
 # open                 1
 LV Size                8.47 GiB
 Current LE             2168
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:0[root@MyCloudServer ~]# vgs #vgを確認してください。vgcentosのサイズが29であることを確認してください。.5g、空き容量は20.04g
 VG     #PV #LV #SN Attr   VSize  VFree 
 centos   220 wz--n-29.50g 20.04g
[ root@MyCloudServer ~]# lvs #lvを見る
 LV   VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 root centos -wi-ao----8.47g                                                    
 swap centos -wi-ao----1.00g                                                    
[ root@MyCloudServer ~]# lvextend -L +20G /dev/centos/root   #-L:論理ボリュームのサイズを指定します。単位は「kKmMgGtT」バイトです。+20Gは、20Gスペースを追加することを意味します
 Size of logical volume centos/root changed from8.47GiB(2168 extents) to 28.47GiB(7288 extents).
 Logical volume root successfully resized
[ root@MyCloudServer ~]# lvs #lvを確認してください。20Gが追加されていることがわかります。
 LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 root centos -wi-ao----28.47g                                                    
 swap centos -wi-ao----1.00g  

この時点で、ルートパーティションのLVMが拡張されています。次に、トスの結果をテストする必要があります。

この時点でディスクスペースを確認すると、追加の20Gスペースはありません。

[ root@MyCloudServer ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.5G  930M  7.6G  11% /
devtmpfs                 873M     0  873M   0%/dev
tmpfs                    893M     0  893M   0%/dev/shm
tmpfs                    893M  8.2M  885M   1%/run
tmpfs                    893M     0  893M   0%/sys/fs/cgroup
/dev/xvda1               497M  161M  337M  33%/boot

現在、システムは容量を拡張したことを認識していないため、ディスクパーティション情報を更新します。 extXパーティションフォーマットとxfsパーティションフォーマットのrefreshコマンドが異なることに注意してください。

[ root@MyCloudServer ~]# resize2fs /dev/centos/root  #extXパーティションフォーマットに適しています
resize2fs 1.42.9(28-Dec-2013)
resize2fs: Bad magic number insuper-block while trying to open /dev/centos/root
Couldn't find valid filesystem superblock.[root@MyCloudServer ~]# xfs_growfs /dev/centos/root  #xfsパーティション形式に適しています
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=555008 blks
   =      sectsz=512   attr=2, projid32bit=1=                       crc=0        finobt=0
data     =                       bsize=4096   blocks=2220032, 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 blocks changed from2220032 to 7462912

ハードディスク情報を再度確認すると、ルートパーティションのスペースが正常に追加されていることがわかります。

[ root@MyCloudServer ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   29G  930M   28G   4% /
devtmpfs                 873M     0  873M   0%/dev
tmpfs                    893M     0  893M   0%/dev/shm
tmpfs                    893M  8.2M  885M   1%/run
tmpfs                    893M     0  893M   0%/sys/fs/cgroup
/dev/xvda1               497M  161M  337M  33%/boot

Recommended Posts

Centos7でのLVMによるファイルシステムのオンライン拡張
Centos7でのLVMによるファイルシステムのオンライン拡張
LinuxでのCentos7のLVMディスク拡張の問題
UbuntuでXFSファイルシステム用のLVMを作成する方法
Ubuntuファイルシステムの概要
001.エンタープライズレベルのCentOS7.6オペレーティングシステムのインストール
UbuntuシステムでLVMのルートディレクトリを拡張する方法
CentOSでのMysqlのインストールと使用
CentOS7ビルドFastDFS分散ファイルシステム(オン)
centos7でのredisのインストールと構成
LinuxCentOS7システムにmysql8.0.13バージョンをインストールします
Centos7拡張ディスクスペース(LVM管理)について説明する
CentOs7の下でのZabbixの4回目の分割払い
CentOS7ビルドFastDFS分散ファイルシステム(下記)
Centos7システム強化の知識ポイントを要約する
CentOS6でのrpmパッケージングの実際の戦闘
Centos7はLVMを使用して動的拡張方式を実現します
CentOS6.5でのrsyncサーバーのインストールと構成
CentOS7でのmysql5.6のデフォルトエンコーディングを変更します
CentosでのMicrosoftROpenの非ルートインストール
CentOS8でのApollo構成センターの分散展開
Centos7でのFastDFSのインストールから入力まで