Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist LVM unter Linux?

Was ist LVM unter Linux?

青灯夜游
青灯夜游Original
2022-02-24 15:08:537297Durchsuche

Unter Linux lautet der vollständige Name von LVM „Logical Volume Manager“, was auf Chinesisch „Logical Volume Management“ bedeutet. Es handelt sich um einen Mechanismus zur Verwaltung von Festplattenpartitionen in der Linux-Umgebung und Partitionen können verwendet werden, um die Flexibilität der Festplattenpartitionsverwaltung zu verbessern.

Was ist LVM unter Linux?

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

Was ist LVM?

LVM (Logical Volume Manager) ist ein Mechanismus zur Verwaltung von Festplattenpartitionen in der Linux-Umgebung. LVM ist eine logische Schicht, die auf der Festplatte und den Partitionen aufgebaut ist Verbessern Sie die Flexibilität der 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 Kapazitätsressourcenpools 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, ohne den Originalteil zu formatieren (nur der neue Teil wird formatiert).

Der Implementierungsprozess von LVM ist wie folgt:

Was ist LVM unter Linux?

Erklärung der LVM-Terminologie

PV (physisches Volumen): Das physische Volumen befindet sich am unteren Ende des logischen Volumenverwaltungssystems, das sein kann die gesamte physische Festplatte oder die tatsächliche physische Festplattenpartition auf. 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. Ein 4 MB (Standard) PE bestimmt die maximale Kapazität eines einzelnen PE. Die maximale Kapazität eines 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.

LVM-Schreibmodi

LVM verfügt über zwei Schreibmodi: Linearmodus und Streifenmodus.

  • Linearer Modus bedeutet, dass auf ein anderes Gerät geschrieben wird, nachdem auf ein Gerät geschrieben wurde.

  • Der Stripe-Modus ähnelt in gewisser Weise dem RAID0, das heißt, Daten werden verteilt 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. So funktioniert LVM PV (physisches Volumen: physisches Volumen), die Anzahl der LV (logisches Volumen: logisches Volumen) und die Anzahl jedes PE (physische Erweiterungen: physische Erweiterungseinheit) zu LE (logische Erweiterungen: physische Erweiterungseinheit) Zuordnungsbeziehung. 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.

    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 darf nicht in Snapshot-Volume-Gruppen verwendet werden).

    • 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.

    So erstellen Sie 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 t-Befehl im fest fdisk-Tool

    [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): 2
    First sector (20973568-62914559, default 20973568): 
    Using default value 20973568
    Last sector, +sectors or +size{K,M,G} (20973568-62914559, default 62914559): +5G
    ...
    Command (m for help): t
    Partition number (1,2, default 2): 2
    Hex code (type L to list all codes): 8e  # 指定system id为8e
    Changed 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

    Verwendung: pvcreate [option] DEVICEpvcreate [option] DEVICE

      选项:

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

    •       -u:指定设备的UUID

    •       -y:所有问题都回答yes

      例 pvcreate /dev/sdb1 /dev/sdb2

    2)pvscan:扫描当前系统上的所有物理卷

    用法:pvscan [option]

      选项:

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

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

    •       -u:显示UUID

    3)pvdisplay:显示物理卷的属性

     用法:pvdisplay [PV_DEVICE]

    4)pvremove:将物理卷信息删除,使其不再被视为一个物理卷

     用法:pvremove [option] PV_DEVICE

      选项:

    •       -f:强制删除

    •       -y:所有问题都回答yes

      例 pvremove /dev/sdb1

    5)pv创建和删除例子

    [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.

    3、创建VG(volume group,卷组)。

    卷组将多个物理卷整合起来(屏蔽了底层细节),并划分PE(physical extend)

    PE是物理卷中的最小存储单元,有点类似于文件系统中的block,PE大小可指定,默认为4M。这一阶段用到的命令有vgcreate、vgscan、vgdisplay、vgextend、vgreduce

    1)vgcreate:创建卷组

     用法:vgcreate [option] VG_NAME PV_DEVICE

      选项:

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

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

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

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

    2)vgscan:查找系统中存在的LVM卷组,并显示找到的卷组列表

    3)vgdisplay:显示卷组属性

      用法:vgdisplay [option] [VG_NAME]

      选项:

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

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

    4)vgextend:动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量

     用法:vgextend VG_NAME PV_DEVICE

    Optionen: 🎜🎜🎜🎜 -f: Erzwingen Sie die Erstellung logischer Volumes ohne Benutzerbestätigung🎜🎜🎜 🎜 -u: Geben Sie die UUID des Geräts an🎜🎜🎜🎜 -y: Beantworten Sie alle Fragen mit Ja🎜🎜🎜🎜 Beispielpvcreate /dev/sdb1 / dev/sdb2🎜🎜2) pvscan: Alle physischen Volumes auf dem aktuellen System scannen🎜🎜Verwendung: <code>pvscan [Option]🎜🎜 Optionen: 🎜🎜🎜🎜 -e: Zeigt nur physische Volumes an, die zur Ausgabe-Volume-Gruppe gehören🎜🎜🎜🎜 <code>-n: Zeigt nur physische Volumes an, die zu keiner Volume-Gruppe gehören🎜🎜🎜🎜 -u : UUID anzeigen🎜 🎜🎜🎜3) pvdisplay: Attribute des physischen Volumes anzeigen🎜🎜 Verwendung: pvdisplay [PV_DEVICE]🎜🎜4) pvremove: Informationen zum physischen Volume löschen, damit es gilt nicht mehr als physisches Volume🎜 🎜 Verwendung: pvremove [option] PV_DEVICE🎜🎜 Optionen: 🎜🎜🎜🎜 -f: Erzwungenes Löschen 🎜🎜🎜🎜 -y: Alle Die Antwort auf alle Fragen lautet „Ja“🎜🎜🎜🎜 Beispiel pvremove /dev/sdb1🎜🎜5) Beispiel zum Erstellen und Löschen von PV🎜
    [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
    🎜🎜3. VG erstellen (Volumengruppe, Volumengruppe). 🎜🎜🎜Volume-Gruppen integrieren mehrere physische Volumes (schirmen die zugrunde liegenden Details ab) und unterteilen PE (physische Erweiterung). 🎜🎜PE ist die kleinste Speichereinheit in einem physischen Volume, ähnlich wie ein Block in einem Dateisystem Angegeben, der Standardwert ist 4M. Zu den in dieser Phase verwendeten Befehlen gehören vgcreate, vgscan, vgdisplay, vgextend, vgreduce🎜🎜1) vgcreate: Erstellen Sie eine Volume-Gruppe🎜🎜 Verwendung: vgcreate [Option] VG_NAME PV_DEVICE🎜🎜 Optionen: 🎜🎜🎜 🎜 -s: PE-Größe des physischen Volumes in der Volume-Gruppe, der Standardwert ist 4M🎜🎜🎜🎜 -l: Die maximale Anzahl logischer Volumes, die erstellt werden dürfen auf der Volume-Gruppe🎜🎜 🎜🎜  -p: Die maximale Anzahl physischer Volumes, die auf der Volume-Ebene hinzugefügt werden dürfen 🎜🎜🎜🎜 Beispielvgcreate -s 8M myvg /dev/sdb1 / dev/sdb2🎜🎜2 ) vgscan: LVM-Volumegruppen finden, die im System vorhanden sind, und die Liste der gefundenen Volumegruppen anzeigen 🎜🎜3) vgdisplay: Volumegruppenattribute anzeigen 🎜🎜 Verwendung: vgdisplay [Option ] [VG_NAME]🎜🎜 Optionen: 🎜🎜🎜🎜                                                                                                                                                                                                      { Code>🎜

      例 vgextend myvg /dev/sdb3

    5)vgreduce:通过删除LVM卷组中的物理卷来减少卷组容量,不能删除LVM卷组中剩余的最后一个物理卷

     用法:vgreduce VG_NAME PV_DEVICE

    6)vgremove:删除卷组,其上的逻辑卷必须处于离线状态

      用法:vgremove [-f] VG_NAME

    •   -f:强制删除

    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            &#39;/dev/myvg/mylv&#39; [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

    相关推荐:《Linux视频教程

Das obige ist der detaillierte Inhalt vonWas ist LVM unter 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