ディレクトリ
1. LVMとは何ですか?
LVM(Logical Volume Manager)、論理ボリューム管理。Linuxのディスクパーティションの管理メカニズム。誰もが疑問を持つと思いますが、なぜそのような管理メカニズムが必要なのでしょうか?その理由は:
多くのLinuxユーザーは、オペレーティングシステムをインストールするときにこのようなジレンマに遭遇します。各ハードディスクパーティションの容量を正確に評価して割り当てる方法。大きすぎる場合はハードディスク領域を浪費し、小さすぎる場合は不十分な使用に直面します。システムパーティションが不十分になると、関連データをバックアップして削除する必要があり、さらにストレージプランの再計画とオペレーティングシステムの再インストールを余儀なくされて、アプリケーションシステムのニーズを満たす必要があります。
この要件に基づいて、LVMはストレージを動的に管理するメカニズムを提供します。
第二に、LVMの原理
LVMが提供する論理ディスク、そのため、ファイルシステムは基礎となる物理ディスクの概念を考慮しなくなります。LVMの原理を理解するには、まずいくつかの基本的なLVM用語を理解する必要があります。
お名前 | 意味 |
---|---|
PV(物理ボリューム) | 物理ボリューム、実際の物理ハードドライブまたはパーティション |
VG(ボリュームグループ) | ボリュームグループ、複数の物理ボリュームで構成される大きな論理ハードディスク |
LV(論理ボリューム) | 論理ボリューム、ボリュームグループで分割された複数の使用可能なパーティション |
PE(Physical Extend) | 物理拡張ブロック、物理ボリュームでの割り当てに使用可能な最小のストレージユニット、デフォルトは4MB |
LE(論理拡張) | 論理拡張ブロック、同じボリュームグループ内の論理ボリュームでの割り当てに使用できる最小のストレージユニット、LEとPEのサイズは同じで、1対1で対応 |
次に、LVMがどのように機能するかを見てみましょう。この写真を組み合わせて、みんなに説明してください!
LVMは、ハードディスクパーティションの上に論理レイヤーを作成します。この論理レイヤーは、複数のハードディスクまたはパーティションを論理ハードディスクのように見せ、この論理ハードディスクを使用する論理ボリュームに分割します。これにより、パーティションの柔軟性が大幅に向上します。
3. LVM管理操作?
1.物理ボリューム(PV)を作成(削除、表示)します
①物理ボリュームを作成する
pvcreateコマンド構文:vgcreateデバイスファイル名
[root@localhost ~]# yum install -y lvm2 //安装LVM2(LVM的管理工具)
[root@localhost ~]# pvcreate /dev/sdb{1,2,3,4} //将分区建立成为物理卷
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdb3" successfully created
Physical volume "/dev/sdb4" successfully created
②物理ボリュームを削除
pvremoveコマンドの構文:vgcreate物理ボリューム名
//删除物理卷时,物理卷必须不属于任何卷组
[root@localhost ~]# pvmove /dev/sdb4 //转移数据到其他PV
[root@localhost ~]# pvremove /dev/sdb4 //删除物理卷sdb4
Labels on physical volume "/dev/sdb4" successfully wiped
③物理ボリュームを表示
[root@localhost ~]# pvs //查看物理卷的概要信息
PV VG Fmt Attr PSize PFree
/dev/sdb1 myvg lvm2 a--u 108.00m 8.00m
/dev/sdb2 myvg lvm2 a--u 108.00m 108.00m
/dev/sdb3 myvg lvm2 a--u 108.00m 108.00m
[root@localhost ~]# pvdisplay //查看物理卷的详细信息
--- Physical volume ---
PV Name /dev/sdb1
VG Name myvg
PV Size 109.79 MiB / not usable 1.79 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 27
Free PE 2
Allocated PE 25
PV UUID PXC8sh-tCv4-KQ5S-Hwo4-FrT1-erxf-0QtmZ8
... //省略/dev/sdb{2,3}的详细信息
[root@localhost ~]# pvscan //扫描所有硬盘上的物理卷
PV /dev/sdb1 VG myvg lvm2 [108.00 MiB / 8.00 MiB free]
PV /dev/sdb2 VG myvg lvm2 [108.00 MiB / 108.00 MiB free]
PV /dev/sdb3 VG myvg lvm2 [108.00 MiB / 108.00 MiB free]
Total: 3 [324.00 MiB] / in use: 3 [324.00 MiB] / in no VG: 0 [0 ]
2.ボリュームグループ(VG)の作成(容量の増加/減少、削除、表示)
①ボリュームグループを作成する
vgcreateコマンド構文:vgcreate [-s PE size]ボリュームグループ名物理ボリューム名
これらのうち、-sはPEのサイズを指定するために使用され、単位はMB、GB、TBなどです。デフォルトは4MBです。
[root@localhost ~]# vgcreate myvg /dev/sdb1 /dev/sdb2 //将物理卷sdb{1,2}加入卷组myvg
Volume group "myvg" successfully created
②ボリュームグループ容量を増やす
vgextendコマンドの構文:vgextendボリュームグループ名物理ボリューム名
[root@localhost ~]# vgextend myvg /dev/sdb3 //将物理卷sdb3加入卷组myvg
Volume group "myvg" successfully extended
③ボリュームグループの容量を減らす
vgreduceコマンドの構文:vgreduceボリュームグループ名物理ボリューム名
[root@localhost ~]# vgreduce myvg /dev/sdb3 //将物理卷sdb3从卷组myvg中移除
Removed "/dev/sdb3" from volume group "myvg"
④ボリュームグループを削除
vgremoveコマンドの構文:vgremoveボリュームグループ名
//删除卷组时,卷组中必须没有任何逻辑卷
[root@localhost ~]# vgcreate myvg1 /dev/sdb3 //建立测试卷组myvg1
Volume group "myvg1" successfully created
[root@localhost ~]# vgremove myvg1 //删除测试卷组myvg1
Volume group "myvg1" successfully removed
volumeボリュームグループを表示
[root@localhost ~]# vgs //查看卷组的概要信息
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 216.00m 64.00m
[root@localhost ~]# vgdisplay //查看卷组的详细信息
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 216.00 MiB
PE Size 4.00 MiB
Total PE 54
Alloc PE / Size 38 / 152.00 MiB
Free PE / Size 16 / 64.00 MiB
VG UUID jSVIZS-MLeY-fOox-pAJZ-hLLd-vtM3-YaK2Hu
[root@localhost ~]# vgscan //扫描所有硬盘上的卷组
Reading all physical volumes. This may take a while...
Found volume group "myvg" using metadata type lvm2
3.論理ボリューム(LV)の作成(容量の増加/減少、削除、表示)
①論理ボリュームを作成する
lvcreateコマンドの構文:lvcreate [オプション] [-n論理ボリューム名]ボリュームグループ名
これらのうち、一般的なオプション:
-n論理ボリューム名:論理ボリューム名を指定します
-Lサイズ:論理ボリュームサイズを指定し、容量サイズを直接指定しますMB、GB、TBなどです。;
-l数量:論理ボリュームのサイズを指定し、PEの数を指定して論理ボリュームのサイズを決定します;
-s:スナップショットを作成します。
[root@localhost ~]# lvcreate -L 100M -n mylv myvg //使用卷组myvg建立大小为100M的逻辑卷mylv
Logical volume "mylv" created.
②論理ボリューム容量を増やす
lvresizeコマンドの構文:論理ボリュームのlvresize [オプション]デバイスファイル名
一般的に使用されるオプション:
-L size:論理ボリュームのサイズを調整し、容量のサイズを直接指定します;
-l数量:論理ボリュームのサイズを調整し、PEの数を指定して論理ボリュームを決定しますサイズ;
絶対と相対の両方で設定できます:
#:#サイズまたは#PEサイズの容量に調整することを意味します;
+/-#:増加/減少#サイズまたは増加/減少#PEサイズを意味します容量。
VGが十分に大きいと、LV容量を増やすことができます。
[root@localhost ~]# lvresize -L +50M /dev/myvg/mylv //增加逻辑卷mylv的大小到150M
Rounding size to boundary between physical extents: 52.00 MiB.
Size of logical volume myvg/mylv changed from 100.00 MiB (25 extents) to 152.00 MiB (38 extents).
Logical volume mylv successfully resized.
[root@localhost ~]# df -h /dev/myvg/mylv //查看硬盘信息
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myvg-mylv
93M 1.6M 87M 2% /mnt/mylv //mylv分区的大小并未改变
//逻辑卷的大小虽然改变了,但是挂载磁盘大小依然是100M,如果要让分区使用这个新的逻辑卷,必须给新增的LV创建文件系统。
[root@localhost ~]# resize2fs /dev/myvg/mylv //调整文件系统大小
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /mnt/mylv; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv to 155648 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 155648 blocks long.
[root@localhost ~]# df -h /dev/myvg/mylv
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myvg-mylv
144M 1.6M 135M 2% /mnt/mylv
③論理ボリューム容量を削減する
LV容量の削減は比較的危険な操作であるため、データの損失を引き起こす可能性があるため、論理ボリュームの容量を削減することは一般に推奨されません。LV容量を減らすには、次の手順を使用する必要があります。
①論理ボリュームをアンマウントし ます 。②e2fsckコマンドを使用して
、論理ボリュームの残りのスペースを強制的に検出
します
。③resize2fsコマンドを使用して、ファイルシステムを縮小します。④lvresizeコマンドを使用して、論理ボリュームの容量を縮小します。⑤
マウントして使用します。
[root@localhost ~]# umount /dev/myvg/mylv //卸载逻辑卷mylv
umount: /dev/myvg/mylv: not mounted
[root@localhost ~]# e2fsck -f /dev/myvg/mylv //强制检测逻辑卷剩余空间
e2fsck 1.41.12 (17-May-2010)
/dev/myvg/mylv: recovering journal
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
/dev/myvg/mylv: ***** FILE SYSTEM WAS MODIFIED *****
/dev/myvg/mylv: 11/37544 files (9.1% non-contiguous), 10390/155648 blocks
[root@localhost ~]# resize2fs /dev/myvg/mylv 100M //减少逻辑卷文件系统大小
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 102400 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 102400 blocks long.
[root@localhost ~]# lvresize -L -50M /dev/myvg/mylv //减少逻辑卷容量
Rounding size to boundary between physical extents: 48.00 MiB.
WARNING: Reducing active logical volume to 108.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv? [y/n]: y
Size of logical volume myvg/mylv changed from 156.00 MiB (39 extents) to 108.00 MiB (27 extents).
Logical volume mylv successfully resized.
[root@localhost ~]# mount /dev/myvg/mylv /mnt/mylv/ //挂载
[root@localhost ~]# df -h /dev/myvg/mylv //查看硬盘信息
/dev/mapper/myvg-mylv
93M 1.6M 87M 2% /mnt/mylv
ヒント:ファイルシステムのサイズと論理ボリュームのサイズは一致している必要があります。もし論理ボリュームがファイルシステムよりも大きい、一部の領域がファイルシステムにフォーマットされていないためスペースの無駄;論理ボリュームがファイルシステムよりも小さい、その後データに問題があります。
④論理ボリュームを削除
論理ボリュームを削除すると、その中のすべてのデータが失われます。次の手順に従って、LV を削除する必要があります。
①論理ボリュームをアンマウントし
ます。②/ etc / fstabに論理ボリュームのマウント情報がある場合(以前に追加していない場合は無視できます)、まず削除する必要があります。そうしないとシステムが起動しない場合があります
。③lvremoveコマンドを使用して論理ボリュームを削除します。
lvremoveコマンドの構文:lvremove論理ボリューム名
[root@localhost ~]# umount /dev/myvg/mylv //卸载逻辑卷mylv
[root@localhost ~]# lvremove /dev/myvg/mylv //删除逻辑卷mylv
Do you really want to remove active logical volume mylv? [y/n]: y
Logical volume "mylv" successfully removed
logical論理ボリュームを表示する
[root@localhost ~]# lvs //查看逻辑卷的概要信息
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-ao---- 108.00m
[root@localhost ~]# lvdisplay //查看逻辑卷的详细信息
--- Logical volume ---
LV Path /dev/myvg/mylv
LV Name mylv
VG Name myvg
LV UUID 7xpEK7-ODNn-DnSX-Eshz-zo4I-zitd-2h1aSM
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-04-03 04:36:05 +0800
LV Status available
# open 1
LV Size 108.00 MiB
Current LE 27
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
[root@localhost ~]# lvscan //扫描所有硬盘上的逻辑卷
ACTIVE '/dev/myvg/mylv' [108.00 MiB] inherit
3. LVMを構築するには?
LVM を構築するには、以下の手順に従う必要があります。
①物理ハードディスクはパーティションに分割されます
。②物理パーティションは物理ボリューム(PV)として確立されます
。③物理ボリュームはボリュームグループ(VG)に統合され、ボリュームグループは動的にサイズ変更でき、物理パーティションはボリュームグループに追加または削除されます削除;
④ボリュームグループを論理ボリューム(LV)に分割し、論理ボリュームを直接サイズ変更することもできます。
⑤論理ボリュームはパーティションとして想定できるため、フォーマットしてマウントする必要もあります。
1.物理パーティションを確立します
[root@localhost ~]# fdisk /dev/sdb //在/dev/sdb硬盘中新建两个分区,每个分区大小为100M
Command (m for help): n //创建分区
Command action
e extended
p primary partition (1-4)
p //分区类型选择主分区
Partition number (1-4): 1 //设置分区号为1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +100M //设置100M大小
... //剩下一个分区创建过程省略
Command (m for help): t //更改分区格式
Partition number (1-4): 1 //选择分区1
Hex code (type L to list codes): 8e //8e为Linux LVM格式
Changed system type of partition 1 to 8e (Linux LVM)
... //剩下一个分区格式修改过程省略
Command (m for help): p //查询创建结果
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2d354121
Device Boot Start End Blocks Id System
/dev/sdb1 1 14 112423+ 8e Linux LVM
/dev/sdb2 15 28 112455 8e Linux LVM
Command (m for help): w //保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partx -a /dev/sdb //重读磁盘分区表信息
2.物理ボリュームを作成する
[root@localhost ~]# pvcreate /dev/sdb{1,2} //将分区建立成为物理卷
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
[root@localhost ~]# pvs //查看物理卷信息
PV VG Fmt Attr PSize PFree
/dev/sdb1 myvg lvm2 a--u 108.00m 108.00m
/dev/sdb2 myvg lvm2 a--u 108.00m 108.00m
3.ボリュームグループを作成する
[root@localhost ~]# vgcreate myvg /dev/sdb{1,2} //将物理卷sdb{1,2}加入卷组myvg
Volume group "myvg" successfully created
[root@localhost ~]# vgs //查看卷组信息
VG #PV #LV #SN Attr VSize VFree
myvg 2 0 0 wz--n- 216.00m 216.00m
4.論理ボリュームを作成する
[root@localhost ~]# lvcreate -L 200M -n mylv myvg //使用卷组myvg建立大小为200M的逻辑卷mylv
Logical volume "mylv" created.
[root@localhost ~]# lvs //查看逻辑卷信息
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 200.00m
5.論理ボリュームのフォーマットとマウント
[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv //格式化
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mkdir /mnt/mylv //创建挂载点
[root@localhost ~]# mount /dev/myvg/mylv /mnt/mylv/ //挂载
[root@localhost ~]# df -Th //查看硬盘信息
[root@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 9.8G 814M 8.5G 9% /
tmpfs tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 ext4 190M 31M 150M 17% /boot
/dev/sr0 iso9660 3.7G 3.7G 0 100% /media
`/dev/mapper/myvg-mylv
ext4 190M 1.6M 179M 1% /mnt/mylv`