Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist die LVM-Partition von Linux?

Was ist die LVM-Partition von Linux?

藏色散人
藏色散人Original
2023-03-24 09:48:291874Durchsuche

Die LVM-Partition von Linux bezieht sich auf „Logical Volume Management“. Der vollständige englische Name von LVM ist „Logical Volume Manager“, ein Mechanismus zum Verwalten von Festplattenpartitionen in der Linux-Umgebung Eine logische Ebene zur Verbesserung der Flexibilität der Festplattenpartitionsverwaltung.

Was ist die LVM-Partition von Linux?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

1. Was ist LVM? LVM (Logical Volume Manager) ist ein Mechanismus zur Verwaltung von Festplattenpartitionen in der Linux-Umgebung. LVM ist eine logische Ebene, die auf der Festplatte und den Partitionen aufgebaut ist Festplattenpartitionsverwaltung. LVM-Systemadministratoren können Festplattenpartitionen einfach verwalten, indem sie beispielsweise mehrere Festplattenpartitionen zu einer Volumengruppe verbinden, um einen Speicherpool zu bilden. Administratoren können frei logische Volumes auf Volume-Gruppen erstellen und darüber hinaus Dateisysteme auf logischen Volume-Gruppen erstellen. Administratoren können die Größe von Speicher-Volume-Gruppen einfach über LVM anpassen und Festplattenspeicher entsprechend den Gruppen benennen, verwalten und zuweisen. Wenn dem System eine neue Festplatte hinzugefügt wird, muss der LVM-Administrator die Dateien der Festplatte nicht auf die neue Festplatte verschieben, um den neuen Speicherplatz vollständig zu nutzen, sondern kann das Dateisystem direkt auf die gesamte Festplatte erweitern.

Im Allgemeinen sind physische Festplatten oder Partitionen getrennt, Daten können sich nicht über Festplatten oder Partitionen erstrecken und die Größe jeder Festplatte oder Partition ist festgelegt, sodass eine Neuanpassung mühsam ist. LVM kann diese zugrunde liegenden physischen Festplatten oder Partitionen integrieren, sie in einen Kapazitätsressourcenpool abstrahieren und sie zur Verwendung durch die obere Schicht in logische Volumes aufteilen. Seine Hauptfunktion besteht darin, dass es ohne Herunterfahren oder Neuformatieren verwendet werden kann (genauer gesagt). Die Größe des logischen Volumes kann flexibel angepasst werden (der ursprüngliche Teil muss nicht formatiert werden, nur der neue Teil wird formatiert).

Der Implementierungsprozess von LVM ist wie folgt:


Was ist die LVM-Partition von Linux? 2. Erläuterung der LVM-Begriffe

PV (physisches Volumen)

: Das physische Volumen befindet sich am unteren Ende des logischen Volumenverwaltungssystems Dabei kann es sich um die gesamte physische Festplatte oder die tatsächliche physische Festplattenpartition handeln. Es wird lediglich ein spezieller Bereich in der physischen Partition reserviert, um Verwaltungsparameter im Zusammenhang mit LVM aufzuzeichnen.

VG (Volume-Gruppe)

: Eine Volume-Gruppe muss mindestens ein physisches Volume enthalten. Volumes können dynamisch zur Volume-Gruppe hinzugefügt werden Managementsystemprojekt Es können mehrere Volume-Gruppen vorhanden sein.

LV (logisches Volume)

: Logische Volumes werden auf Volume-Gruppen erstellt. Der nicht zugewiesene Speicherplatz in der Volume-Gruppe kann zum Erstellen neuer logischer Volumes verwendet werden. Nachdem die logischen Volumes erstellt wurden, kann der Speicherplatz dynamisch erweitert und reduziert werden.

PE (physischer Umfang)

: Der physische Bereich ist die kleinste Speichereinheit, die im physischen Volume zugewiesen werden kann. Die Größe des physischen Bereichs wird beim Erstellen der Volume-Gruppe angegeben Die physische Bereichsgröße aller physischen Volumes in derselben Volume-Gruppe muss konsistent sein: Nachdem ein neues PV zum VG hinzugefügt wurde, wird die Größe des PE automatisch auf die im VG definierte PE-Größe geändert.

LE (logischer Bereich)

: Der logische Bereich ist die kleinste für die Zuweisung verfügbare Speichereinheit im logischen Datenträger. Die Größe des logischen Bereichs hängt von der Größe des physischen Bereichs in der Datenträgergruppe ab, in der sich der logische Datenträger befindet . Aufgrund von Kernel-Einschränkungen kann Ein logisches Volume (Logic Volume) nur bis zu 65536 PE (Physical Extent) enthalten, daher bestimmt die Größe eines PE die maximale Kapazität des logischen Volumes und 4 MB (Standard) PE bestimmt die Die maximale Kapazität eines einzelnen logischen Volumes beträgt 256 GB. Wenn Sie ein logisches Volume mit mehr als 256 GB verwenden möchten, müssen Sie beim Erstellen einer Volume-Gruppe ein größeres PE angeben. In Red Hat Enterprise Linux AS 4 reicht die PE-Größe von 8 KB bis 16 GB und muss immer ein Vielfaches von 2 sein. 3. LVM-Schreibmodus

LVM verfügt über zwei Schreibmodi: Linearmodus und Stripe-Modus

.

  • Linearer Modus bedeutet, dass auf ein Gerät geschrieben wird, bevor auf ein anderes Gerät geschrieben wird.
  • Der Stripe-Modus ähnelt in gewisser Weise dem RAID0, das heißt, die Daten werden auf verteilte Weise auf jedes LVM-Mitgliedsgerät geschrieben.
    Da Daten im Stripe-Modus nicht sicher sind und LVM keinen Wert auf Lese- und Schreibleistung legt, verwendet LVM standardmäßig den linearen Modus, sodass die Daten auf anderen Geräten auch dann noch vorhanden sind, wenn ein Gerät defekt ist.

4. Wie LVM funktioniert: LVM verwaltet Metadaten am Kopf jedes physischen Volumes. Jede Metadaten enthält Informationen über die gesamte VG (Volume-Gruppe), einschließlich des Layouts jeder VG-Konfiguration (Physical Volume). Volume-Nummer, LV-Nummer (logisches Volume: logisches Volume) und die Zuordnungsbeziehung jedes PE (physische Erweiterungen: physische Erweiterungseinheit) zu LE (logische Erweiterungen: physische Erweiterungseinheit). Die Informationen im Header jedes PV in derselben VG sind dieselben, was die Datenwiederherstellung im Fehlerfall erleichtert.

LVM stellt die LV-Schicht für das obere Dateisystem bereit und verbirgt die Betriebsdetails. Für das Dateisystem unterscheidet sich die LV-Operation nicht von der ursprünglichen Partitionsoperation. Beim Schreiben in den LV findet LVM den entsprechenden LE und schreibt die Daten über die Zuordnungstabelle im PV-Header in den entsprechenden PE. Das größte Merkmal von LVM besteht darin, dass es Festplatten dynamisch verwalten kann. Denn die Größe des logischen Volumes kann dynamisch angepasst werden, ohne dass vorhandene Daten verloren gehen. Wenn wir eine neue Festplatte hinzufügen, ändert sich dadurch das bestehende obere logische Volume nicht. Der Schlüssel besteht darin, eine Zuordnungsbeziehung zwischen PE und LE herzustellen. Unterschiedliche Zuordnungsregeln bestimmen unterschiedliche LVM-Speichermodelle. LVM unterstützt Stripe und Mirror mehrerer PVs.

5. Vor- und Nachteile von LVM

Vorteile:

Das Dateisystem kann sich über mehrere Festplatten erstrecken, sodass die Größe des Dateisystems nicht durch die physische Festplatte begrenzt ist.
  • Sie können die Größe des Dateisystems dynamisch erweitern, während das System läuft.
  • Sie können dem LVM-Speicherpool neue Festplatten hinzufügen.
  • Kann wichtige Daten spiegelnd auf mehrere physische Festplatten redundant übertragen.
  • Sie können die gesamte Volume-Gruppe problemlos auf eine andere Maschine exportieren.
  • Nachteile:

Der Befehl „reducvg“ muss beim Entfernen einer Festplatte aus einer Volume-Gruppe verwendet werden (dieser Befehl erfordert Root-Rechte und ist in Snapshot-Volume-Gruppen nicht zulässig).
  • Wenn eine Festplatte in einer Volume-Gruppe beschädigt wird, ist die gesamte Volume-Gruppe betroffen.
  • Aufgrund der Hinzufügung zusätzlicher Vorgänge wird die Speicherleistung beeinträchtigt.
  • 6. Methode zum Erstellen von PV/VG/LV

1. Stellen Sie den Systemtyp jeder physischen Festplatte oder Partition auf Linux LVM ein, ihre System-ID ist 8e, und legen Sie sie über den Befehl t im fdisk-Tool fest

[root@localhost ~]# fdisk /dev/sdb ...
Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2First sector (20973568-62914559, default 20973568): 
Using default value 20973568Last sector, +sectors or +size{K,M,G} (20973568-62914559, default 62914559): +5G
...
Command (m for help): t
Partition number (1,2, default 2): 2Hex code (type L to list all codes): 8e  # 指定system id为8eChanged type of partition 'Linux' to 'Linux LVM'...
Command (m for help): p
...
/dev/sdb1            2048    20973567    10485760   8e  Linux LVM
/dev/sdb2        20973568    31459327     5242880   8e  Linux LVM
Command (m for help): w
...

2. Initialisieren Sie jede physische Festplatte oder Partition in einem PV (physisches Volume)

Die Befehle, die in dieser Phase verwendet werden können, sind pvcreate, pvremove, pvscan, pvdisplay (pvs)

1) pvcreate : Physisches Volume erstellen

用法:pvcreate [option] DEVICE

  选项:

      -f:强制创建逻辑卷,不需用户确认

      -u:指定设备的UUID

      -y:所有问题都回答yes

  例 pvcreate /dev/sdb1 /dev/sdb2

2) pvscan: Alle physischen Volumes auf dem aktuellen System scannen

用法:pvscan [option]

  选项:

      -e:仅显示属于输出卷组的物理卷

      -n:仅显示不属于任何卷组的物理卷

      -u:显示UUID

3) pvdisplay: Eigenschaften des physischen Volumes anzeigen

 用法:pvdisplay [PV_DEVICE]

4) pvremove: Ersetzen Sie das physische Volume. Volume-Informationen werden gelöscht, sodass es nicht mehr als physisches Volume betrachtet wird Gruppe). Eine Volume-Gruppe integriert mehrere physische Volumes (schirmt die zugrunde liegenden Details ab) und unterteilt PE (physische Erweiterung).

PE ist die kleinste Speichereinheit in einem physischen Volume, ähnlich einem Block in einem Dateisystem. Die PE-Größe kann angegeben werden . Der Standardwert ist 4M. Die in dieser Phase verwendeten Befehle sind vgcreate, vgscan, vgdisplay, vgextend, vgreduce.

1) vgcreate: Erstellen Sie eine Volume-Gruppe die gefundene Volume-Gruppenliste

3) vgdisplay: Volume-Gruppeneigenschaften anzeigen

 用法:pvremove [option] PV_DEVICE

  选项:

      -f:强制删除

      -y:所有问题都回答yes

  例 pvremove /dev/sdb1

4) vgextend: LVM-Volume-Gruppe dynamisch erweitern, wodurch die Kapazität der Volume-Gruppe durch Hinzufügen physischer Volumes zum Volume erhöht wird Gruppe

[root@localhost ~]# pvcreate /dev/sdb{1,2}  # 将两个分区初始化为物理卷
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]# pvscan 
  PV /dev/sdb2                      lvm2 [5.00 GiB]
  PV /dev/sdb1                      lvm2 [10.00 GiB]
  Total: 2 [15.00 GiB] / in use: 0 [0   ] / in no VG: 2 [15.00 GiB]
[root@localhost ~]# pvdisplay /dev/sdb1   # 显示物理卷sdb1的详细信息
  "/dev/sdb1" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   # 由于PE是在VG阶段才划分的,所以此处看到的都是0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               GrP9Gi-ubau-UAcb-za3B-vSc3-er2Q-MVt9OO
   
[root@localhost ~]# pvremove /dev/sdb2   # 删除sdb2的物理卷信息
  Labels on physical volume "/dev/sdb2" successfully wiped.
[root@localhost ~]# pvscan     # 可以看到PV列表中已无sdb2
  PV /dev/sdb1                      lvm2 [10.00 GiB]
  Total: 1 [10.00 GiB] / in use: 0 [0   ] / in no VG: 1 [10.00 GiB]
[root@localhost ~]# pvcreate /dev/sdb2 
  Physical volume "/dev/sdb2" successfully created.

5) vgreduce: Reduzieren Sie die Kapazität der Volume-Gruppe, indem Sie physische Volumes in der LVM-Volume-Gruppe löschen. Das letzte verbleibende physische Volume in der LVM-Volume-Gruppe kann nicht gelöscht werden

 用法:vgcreate [option] VG_NAME PV_DEVICE

  选项:

      -s:卷组中的物理卷的PE大小,默认为4M

      -l:卷组上允许创建的最大逻辑卷数

      -p:卷级中允许添加的最大物理卷数

  例 vgcreate -s 8M myvg /dev/sdb1 /dev/sdb2

6) vgremove : Löschen Sie die Volume-Gruppe. Das logische Volume darauf muss offline sein

  用法:vgdisplay [option] [VG_NAME]

  选项:

      -A:仅显示活动卷组的信息

      -s:使用短格式输出信息

7)vgchange:常用来设置卷组的活动状态

  用法:vgchange -a n/y VG_NAME

  -a n为休眠状态,休眠之前要先确保其上的逻辑卷都离线;

  -a y为活动状态

8)vg创建例子

[root@localhost ~]# vgcreate -s 8M myvg /dev/sdb{1,2}
  Volume group "myvg" successfully created
[root@localhost ~]# vgscan
  Reading volume groups from cache.
  Found volume group "myvg" using metadata type lvm2
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               myvg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               14.98 GiB
  PE Size               8.00 MiB
  Total PE              1918
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1918 / 14.98 GiB
  VG UUID               aM3RND-aUbQ-7RjC-dCci-JiS4-Oj2Z-wv9poA

4、在卷组上创建LV(logical volume,逻辑卷)

为了便于管理,逻辑卷对应的设备文件保存在卷组目录下,为/dev/VG_NAME/LV_NAME。LV中可以分配的最小存储单元称为LE(logical extend),在同一个卷组中,LE的大小和PE是一样的,且一一对应。这一阶段用到的命令有lvcreate、lvscan、lvdisplay、lvextend、lvreduce、lvresize

1)lvcreate:创建逻辑卷或快照

  用法:lvcreate [选项] [参数]

  选项:

      -L:指定大小

      -l:指定大小(LE数)

      -n:指定名称

      -s:创建快照

      -p r:设置为只读(该选项一般用于创建快照中)

  注:使用该命令创建逻辑卷时当然必须指明卷组,创建快照时必须指明针对哪个逻辑卷         

  例 lvcreate -L 500M -n mylv myvg

2)lvscan:扫描当前系统中的所有逻辑卷,及其对应的设备文件

3)lvdisplay:显示逻辑卷属性

  用法:lvdisplay [/dev/VG_NAME/LV_NAME]

4)lvextend:可在线扩展逻辑卷空间

  用法:lvextend -L/-l 扩展的大小 /dev/VG_NAME/LV_NAME  

  选项:

      -L:指定扩展(后)的大小。例如,-L +800M表示扩大800M,而-L 800M表示扩大至800M

      -l:指定扩展(后)的大小(LE数)

  例 lvextend -L 200M /dev/myvg/mylv

5)lvreduce:缩减逻辑卷空间,一般离线使用

 用法:lvexreduce -L/-l 缩减的大小 /dev/VG_NAME/LV_NAME  

  选项:

      -L:指定缩减(后)的大小

      -l:指定缩减(后)的大小(LE数)

  例 lvreduce -L 200M /dev/myvg/mylv

6)lvremove:删除逻辑卷,需要处于离线(卸载)状态

  用法:lvremove [-f] /dev/VG_NAME/LV_NAME

  -f:强制删除

7)lv创建例子

[root@localhost ~]# lvcreate -L 2G -n mylv myvg  
  Logical volume "mylv" created.
[root@localhost ~]# lvscan 
  ACTIVE            '/dev/myvg/mylv' [2.00 GiB] inherit
[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                2lfCLR-UEhm-HMiT-ZJil-3EJm-n2H3-ONLaz1
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2019-07-05 13:42:44 +0800
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

5、格式化逻辑卷并挂载

[root@localhost ~]# mke2fs -t ext4 /dev/myvg/mylv
...                        
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
...
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount
mount       mountpoint  
[root@localhost ~]# mount /dev/myvg/mylv /data
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda1               50G  1.5G   49G   3% /
devtmpfs               903M     0  903M   0% /dev
tmpfs                  912M     0  912M   0% /dev/shm
tmpfs                  912M  8.6M  904M   1% /run
tmpfs                  912M     0  912M   0% /sys/fs/cgroup
tmpfs                  183M     0  183M   0% /run/user/0
/dev/mapper/myvg-mylv  2.0G  6.0M  1.8G   1% /data

PS:更新

一、LV逻辑卷扩容后,必须对挂载目录在线扩容。

使用 resize2fs或xfs_growfs 对挂载目录在线扩容
resize2fs 针对文件系统ext2 ext3 ext4
xfs_growfs 针对文件系统xfs

xfs在线扩容

xfs_growfs /dev/mapper/vg--BHG-lv01
meta-data=/dev/mapper/vg--BHG-lv01 isize=512    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0data     =                       bsize=4096   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal               bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0data blocks changed from 128000 to 256000

ext4在线扩容

[root@localhost /]# resize2fs /dev/mapper/vg--BHG-lv02
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vg--BHG-lv02 is mounted on /BHGPOS-data; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/mapper/vg--BHG-lv02 is now 5242880 blocks long.

相关推荐:《Linux视频教程

Das obige ist der detaillierte Inhalt vonWas ist die LVM-Partition von Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet Linux IO?Nächster Artikel:Was bedeutet Linux IO?