Linux動的管理ストレージメカニズムLVMを知っている必要があります。

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`

元の記事を16件公開 賞賛された363件 30,000回以上の閲覧

おすすめ

転載: blog.csdn.net/weixin_43898125/article/details/105380559