Verwendet vgextend / lvextend, um zusätzlichen 8 GB Speicherplatz hinzuzufügen, wird jedoch nicht in der df-Ausgabe angezeigt


7

Ich habe eine Instanz von Ubuntu VM in VirtualBox erstellt. Zu Beginn habe ich nur 7 GB für den Speicher zugewiesen und der VM ist jetzt der Speicherplatz ausgegangen.

Zuerst habe ich der VM über das VirtualBox-Frontend weitere 8 GB (/ dev / sdb) hinzugefügt. Ich habe dann folgende Partitionen eingerichtet:

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 8589 MB, 8589934592 bytes
40 heads, 1 sectors/track, 419430 cylinders, total 16777216 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: 0x076b5690

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    16777215     8387584    5  Extended
/dev/sdb5            4096    16777215     8386560   8e  Linux LVM

Dann habe ich die folgenden Befehle ausgeführt, um die VG zu erweitern.

  sudo pvcreate /dev/sdb5
  sudo vgextend ubuntudevbox2 /dev/sdb5
  sudo lvextend 100% /dev/ubuntudevbox2/root
  lvextend --help
  sudo lvextend -l 100%FREE /dev/ubuntudevbox2/root
  sudo lvextend -r -l 100%FREE /dev/ubuntudevbox2/root
  sudo resize2fs  /dev/mapper/ubuntudevbox2-root

Ich hätte erwartet, dass die Größe von / auf 16 GB erweitert wird. Allerdings meldet df das

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/ubuntudevbox2-root  8.0G  6.9G  680M  92% /

Der Root-Mount wurde nur auf 8G erhöht

Hier ist die VG-Information

$ sudo vgdisplay ubuntudevbox2
[sudo] password for antkong: 
  --- Volume group ---
  VG Name               ubuntudevbox2
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               15.75 GiB
  PE Size               4.00 MiB
  Total PE              4033
  Alloc PE / Size       2182 / 8.52 GiB
  Free  PE / Size       1851 / 7.23 GiB
  VG UUID               ZV6VAi-qkxC-KnKz-1LHg-nfLB-afSI-mVpIPv

Warum habe ich nicht den vollen zusätzlichen Speicherplatz von 8 GB erhalten?

Zusätzliche Informationen 1: Ich habe mkfs -t ext5 /dev/sdb5direkt nach der Verwendung von fdisk ausgeführt, um eine neue Partition hinzuzufügen. Kann es den Fehler verursachen?

Zusätzliche Informationen 2:

$ uname -a
Linux ubuntudevbox2 3.5.0-27-generic #46-Ubuntu SMP Mon Mar 25 19:58:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

lvdisplay Ausgabe:

$ sudo lvdisplay

  --- Logical volume ---
  LV Path                /dev/ubuntudevbox2/root
  LV Name                root
  VG Name                ubuntudevbox2
  LV UUID                V1Qq0f-qKJR-UTf5-4tjM-ycoY-1J5L-mJQ2Fy
  LV Write Access        read/write
  LV Creation host, time ubuntudevbox2, 2013-03-29 12:18:26 +1100
  LV Status              available
  # open                 1
  LV Size                8.03 GiB
  Current LE             2055
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/ubuntudevbox2/swap_1
  LV Name                swap_1
  VG Name                ubuntudevbox2
  LV UUID                LbvPFE-j3GO-oaF1-HQV3-a2r5-HTfy-YrhQve
  LV Write Access        read/write
  LV Creation host, time ubuntudevbox2, 2013-03-29 12:18:29 +1100
  LV Status              available
  # open                 2
  LV Size                508.00 MiB
  Current LE             127
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

Wovon wird ausgegeben lvdisplay?
AlexD

Ausgabe wird zu der Frage hinzugefügt
Anthony Kong

Antworten:


11

Die Ausgabe erfolgt absolut in der Zeile

sudo lvextend -l 100%FREE /dev/ubuntudevbox2/root

Da Sie nach der Erweiterung nur 8G freie Extents hatten, erhalten Sie nur eine Stufe, die diese absolute Größe von 8G darstellt.

Sie müssen LVM darüber informieren, dass Sie eine zusätzliche Speicherplatzgröße festlegen möchten . Aus der Manpage von lvextend;

   -l, --extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}]
          Extend  or  set  the  logical  volume  size  in units of logical
          extents.  With the '+' sign the value is  added  to  the  actual
          size of the logical volume and without it, the value is taken as
          an absolute one.

Versuchen

sudo lvextend -l +100%FREE /dev/ubuntudevbox2/root

2
@mlfe Ich habe es ausgeführt und dann sudo resize2fs /dev/mapper/ubuntudevbox2-rootwieder. Ich kann jetzt den gesamten Speicherplatz sehen, den ich zugewiesen habe. Vielen Dank
Anthony Kong

2

Wie Sie an Ihrer vgdisplayAusgabe sehen können, wird nur etwa die Hälfte des Speicherplatzes zugewiesen:

Alloc PE / Size       2182 / 8.52 GiB
Free  PE / Size       1851 / 7.23 GiB

Ich vermute, Sie müssen Parameter lvextendexpliziter angeben .


Stimmen Sie Ihrer Diagnose zu. Es ist schwierig, genau zu debuggen. Die angegebene lvextend-Befehlszeile scheint auf meiner Testbox nicht zu funktionieren (Debian-Test). sudo lvextend -l 100%FREE /dev/mapper/vg_brick-lv_TESTschien gut für mich zu funktionieren. Die Angabe in PEs wäre eine vernünftige Alternative. Es ist fast so, als wäre der verwendete Befehl eher so lvextend -l 100%LV. Obwohl das offensichtlich gewesen sein sollte - es sagte mir New size (1 extents) matches existing size (1 extents) Run lvextend --help 'für mehr Informationen.'.
Sourcejedi

1
@alexd @sourcejedi Ich habe die Frage mit all dem lvextend aktualisiert, den ich ausgeführt habe. In der Tat hat das Original nicht funktioniert. Schließlich rannte ich lvextend -r -l 100%FREE /dev/ubuntudevbox2/root.
Anthony Kong
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.