Wie kann man eine Linux Device Mapper-Partition korrekt erweitern?

7

Mir fehlt ein Konzept für die Linux-Datenträgerverwaltung. Ich habe freien Speicherplatz auf einem einzelnen physischen Volume, mit dem ich ein ext4-Dateisystem erweitern möchte, bei dem es sich um ein logisches Volume handelt.

Ich schaue auf fdisk -l - es ist ein GPT (Warnungen)

Disk /dev/sda: 299.4 GB, 299439751168 bytes
255 heads, 63 sectors/track, 36404 cylinders, total 584843264 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1   584843263   292421631+  ee  GPT

Ich schaue mir die physischen Volumes an:

root@node-29:/home# pvs
  PV         VG      Fmt  Attr PSize  PFree
  /dev/sda4  os      lvm2 a--  62.00g 4.00m
  /dev/sda5  logs    lvm2 a--  10.00g 4.00m
  /dev/sda6  mysql   lvm2 a--  20.00g 4.00m
  /dev/sda7  narcine lvm2 a--  11.00g 4.00m

Das summiert sich auf 93 GB, das ist eine Swap-Partition und ein paar andere, aber ich habe viel freien Speicherplatz

Ich schaue auf parted, da es sich um GPT-Partitionen handelt - ich möchte den verfügbaren freien Speicherplatz sehen:

root@node-29:/home# parted /dev/sda print free
Model: DELL PERC H710 (scsi)
Disk /dev/sda: 299GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
        17.4kB  1049kB  1031kB  Free Space
 1      1049kB  26.2MB  25.2MB               primary  bios_grub
        26.2MB  27.3MB  1049kB  Free Space
 2      27.3MB  237MB   210MB                primary
        237MB   238MB   1049kB  Free Space
 3      238MB   448MB   210MB   ext2         primary
        448MB   449MB   1049kB  Free Space
 4      449MB   67.1GB  66.6GB               primary
        67.1GB  67.1GB  1049kB  Free Space
 5      67.1GB  77.9GB  10.8GB               primary
        77.9GB  77.9GB  1049kB  Free Space
 6      77.9GB  99.4GB  21.5GB               primary
        99.4GB  99.4GB  1049kB  Free Space
 7      99.4GB  111GB   11.9GB               primary
        111GB   111GB   1049kB  Free Space
 8      111GB   111GB   21.0MB  ext2         primary
        111GB   299GB   188GB   Free Space

Es gibt ein wenig freien Speicherplatz auf allen Volumes, aber es gibt den Speicherplatz, den ich in der letzten Zeile haben möchte

Number  Start   End     Size    File system  Name     Flags
        111GB   299GB   188GB   Free Space

In LVM sehe ich die Geräte in / dev / mapper, ich schaue auf dmsetup

root@node-29:/home# dmsetup info
Name:              narcine-nartemp
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      252, 0
Number of targets: 1
UUID: LVM-eDmr02vsptbjvAdvX9c7VZGuI3drAkuMqYAIwCAy6EEZ2GTAopLlD96o6CmOtszP

Name:              os-swap
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        2
Event number:      0
Major, minor:      252, 4
Number of targets: 1
UUID: LVM-hMIdqpNc1W6paxT044lNpBcPUfWGA2kESL4f6dB9OJu14mKzLvnOzKMeNM6zV4SK

Name:              os-root
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      252, 3
Number of targets: 1
UUID: LVM-hMIdqpNc1W6paxT044lNpBcPUfWGA2kEcIBDlsTce6uqieEfh6ehzYfLxJwaIoEe

Name:              mysql-root
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      252, 1
Number of targets: 1
UUID: LVM-rYCHA1YXEPa6jDTS8NIHRvTXllf7jeNhT5d7pulT4efAq4TMll6ndWVuyiDYgGbs

Name:              logs-log
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      252, 2
Number of targets: 1
UUID: LVM-npxUm7C9dQX7fIrLeAGyfJxrDWKzmb9rVfJS8FEspobIPK8bnuOnDzLNdQtsY4jE

Wie soll ich mit der Erweiterung fortfahren? Wie ist die Reihenfolge (parted, lvm, dmsetup?) - parted sagt mir, dass die Gerätepartition eine Schleife ist - was bedeutet das?

Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/os-root: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  53.7GB  53.7GB  ext4


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/os-swap: 12.9GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system     Flags
 1      0.00B  12.9GB  12.9GB  linux-swap(v1)


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/logs-log: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  10.7GB  10.7GB  ext4


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/mysql-root: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  21.5GB  21.5GB  ext4


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/narcine-nartmp: 11.8GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  11.8GB  11.8GB  xfs

Ich hatte erwartet pvsan -vv, mir kostenlos PEfree auf / dev / sda zu zeigen - warum nicht?

Was mich wirft, ist der Befehl dmcreate, wie er aussieht. Es ist nicht nötig, "traditionelle" Partitionen zu erstellen - ist das richtig?

Vielen Dank.

Sum1sAdmin
quelle

Antworten:

14

So erweitern Sie das LVM

cfdisk /dev/sda                        # create new partition, using all free space
pvcreate /dev/sdaX                     # initialize partition for use with LVM
vgdisplay                              # to find VG name
vgextend /dev/vgname /dev/sdaX         # this extends the volume group
lvextend -l +100%FREE /dev/vgname/root # this extends the LVM
resize2fs /dev/vgname/root             # this extends the filesystem

Erklärung von LVM

LVM kümmert sich nicht um Partitionen. Ein LVM hat die folgende Hierarchie:

  1. Dateisystem
  2. L großartigen Puzzle - V olumes
  3. V olume G Gruppen
  4. P hysical V olumes
  5. (Partitionen)
  6. Hardware

Lass uns von unten nach oben gehen.

Unten haben Sie die Hardware. Große Überraschung. Darüber hinaus haben Sie PVs. Jetzt wird es hier verwirrend. Sie können entweder eine PV als Laufwerk selbst oder als Partition verwenden . LVM benötigt keine Partitionen. Sie können Raw-Block-Geräte als PVs hinzufügen. Viele Leute erstellen jedoch trotzdem Partitionen. Dafür gibt es viele Gründe. Abwärtskompatibilität mit Tools oder Personen, die beispielsweise Partitionen erwarten. Wenn ein Systemadministrator das Layout nicht kennt und eine "leere" Festplatte sieht, könnte er denken, dass die Festplatte leer ist, obwohl es sich um eine PV handelt! Das ist der Grund, warum Sie manchmal Partitionen als PVs verwenden.

Dies sehen Sie in Ihrem Beispiel: Wer auch immer den Server eingerichtet hat, hat anscheinend eine Partition pro VG erstellt.

Als nächstes sind die Volumengruppen. Eine VG ist eine oder mehrere PVs. Dies ist der Behälter, der alle Sachen enthält, die danach kommen. Da PVs Festplatten, virtuelle Festplatten von RAID-Controllern, Partitionen usw. sein können, können VGs eine beliebige Anzahl dieser Dinge umfassen.

Zusätzlich zu VGs haben Sie LVs. Dies ist, worauf Sie Ihre Dateisysteme tatsächlich setzen. Sie können eine LV wie eine Partition betrachten. Sie finden sie hier:

/dev/VGName/LVname

Ein LV gehört also immer zu einer VG, aber Sie können viele LVs pro VG haben.

Oben auf dem LV platzieren Sie schließlich Ihr Dateisystem.

Warum Schleife

Das Loop-Rätsel: Es gibt kein Loop-Gerät! Parted kann keine Partitionstabelle auf dem LVM finden (wie es sein sollte), daher wird stattdessen nur 'loop' angezeigt.

mzhaase
quelle
danke mzhaase, ich versuche das logische Festplattenlayout ein bisschen besser zu verstehen, cfdisk listet die aktuellen Partitionen nicht auf, da es sich um GPT handelt. Ich vermute, dass LVM die Geräte-Mapper-Einträge (?) erstellt, aber die Geräte-Mapper-Befehle und die Die Ausgabe von parted (oben) ist verwirrend - zum Beispiel fdisk, cfdisk sagt mir, ich soll parted verwenden, da die Partitionen GPT sind, und parted listet sie als Loop-Geräte & Linux Device Mapper-Modell auf
Sum1sAdmin
@ Sum1sAdmin ok, fügte eine kurze LVM-Erklärung hinzu, hoffe, das klärt die Dinge auf.
Mzhaase
Nochmals vielen Dank für Ihre Eingabe, ich verstehe lvm - physisch, logisch, Datenträgergruppen usw. - aber es scheint, dass diese Datenträger Schleifengeräte sind - wie eine ISO wäre, LVM kann das nicht. 'Modell: Linux Device-Mapper (linear) (dm) Disk / dev / mapper / narcine-nartmp: 11,8 GB Sektorgröße (logisch / physisch): 512B / 512B Partitionstabelle: Schleife'
Sum1sAdmin
@ Sum1sAdmin Ah, jetzt verstehe ich. Das LVM hat keine Partitionstabelle, daher zeigt parted 'loop' an. Dies geschieht, wenn keine Partitionstabelle gefunden werden kann. Siehe: bugzilla.redhat.com/show_bug.cgi?id=741593
mzhaase
Das ist ein 5 Jahre alter Fehlerbericht für Rhel. Ich bin an einer Antwort interessiert, die erklärt, wie diese Geräte erstellt wurden, warum es Loop-Geräte gibt und wie sie erweitert werden (ich verstehe, dass LVM endlich zum Erweitern des Volumes verwendet wird)
Sum1sAdmin