Knappen Speicherplatz auf Linux VPS vergrössern
Der Speicherplatz auf dem virtuellen Debian Linux Server "examplehost" wird knapp und es soll daher zusätzlicher Speicherplatz verfügbar gemacht werden. Die folgende Anleitung zeigt, wie der verfügbare "Disk Space" auf einem Debian 9 Linux Server vergrössert werden kann.
Alles folgende bezüglich Vergrösserung des verfügbaren Speicherplatzes auf einem Linux Server kann grundsätzlich unter jedem Linux System analog ausgeführt werden. Die nachfolgend beschriebenen Prozesse wurde auf einem Debian 9 64bit Linux Server mit einem XFS-Datei ausgeführt. Bei der Nutzung abweichender Linux Distributionen oder alternativer Dateisysteme müssen einzelne Schritte analog angepasst werden) Es wird vorausgesetzt, dass die Utilities "fdisk" # apt-get install libfdisk1 und "xfsprogs" # apt-get install xfsprogs auf dem Linux VPS vorhanden sind.
Im Zusammenhang mit Cloud Services von Hostfactory bezieht sich die folgende Beschreibung für das Vergrössern von verfügbarem Speicherplatz auf einem Linux Server auf unsere Cloud Server Angebote und unsere Lösungen mit einem Cloud Server WebEdition inklusive Control Panel Plesk
Aktuelle Situation auf Debian VPS überprüfen
Prüfen wir als erstes die aktuelle Situation. Wir möchten wissen, wieviel Speicherplatz in den vorhandenen Partitionen verfügbar ist und welche Dateisysteme hier verwendet werden:
- # df -Th
- Dateisystem Typ Größe Benutzt Verf. Verw% Eingehängt auf
- udev devtmpfs 2.0G 0 2.0G 0% /dev
- tmpfs tmpfs 393M 5.9M 388M 2% /run
- /dev/xvda2 xfs 119G 118G 1G 99% /
- tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
- tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
- tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
- tmpfs tmpfs 393M 0 393M 0% /run/user/0
Mit dem Kommando # df -Th wird mir angezeigt, dass meine "Hauptpartion" unter '/' über eine Grösse von total 119 GB verfügt, wovon aber in einem XFS-Filesystem derzeit 118 GB, also rund 99%, belegt sind.
Mit einem # fdisk -l lasse ich mir die Situation bzgl. Festplatten und Partitionen anzeigen:
- # fdisk -l
- Disk /dev/xvda: 120 GiB, 128849018880 bytes, 251658240 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
- Disklabel type: dos
- Disk identifier: 0x19ab9fb3
- Device Boot Start End Sectors Size Id Type
- /dev/xvda1 2046 3905535 3903490 1.9G 5 Extended
- /dev/xvda2 3905536 251658239 247752704 118.1G 83 Linux
- /dev/xvda5 2048 3905535 3903488 1.9G 82 Linux swap / Solaris
- Partition table entries are not in disk order.
Ich erkenne also, dass meine physikalische Disk "/dev/xvda" 120 GB gross ist und in drei Devices aufgeteilt wurde. Unter "/dev/xvda2" werden die oben entdecketen 119 GB für "/" angeboten. - Ich möchte nun also diesen Speicherplatz in etwa verdoppeln.
Grössere Disk beim Cloud Service Provider beziehen
Hierfür kontaktiere ich meinen Cloud Server Hosting Provider, um ein entsprechendes Speicherplatz Upgrade zu erhalten.
Bei Hostfactory kann ein derartiges Upgrade bequem via Control Panel "my.hostfactory" bestellt werden.
Gesagt, getan: In meinem Virtual Private Server steht nun eine Hard Disk mit einer Grösse von insgesamt 240GB zur verfügung:
- # fdisk -l
- Disk /dev/xvda: 240 GiB, 257698037760 bytes, 503316480 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
- Disklabel type: dos
- Disk identifier: 0x19ab9fb3
- Device Boot Start End Sectors Size Id Type
- /dev/xvda1 2046 3905535 3903490 1.9G 5 Extended
- /dev/xvda2 3905536 251658239 247752704 118.1G 83 Linux
- /dev/xvda5 2048 3905535 3903488 1.9G 82 Linux swap / Solaris
- Partition table entries are not in disk order.
Wie ich aber hier sehe, steht mir nun zwar eine SSD, resp. HDD mit 240GB zur Verfügung, aber mein "/dev/xvda2" ist immer noch erst 118.3 GB gross:
- # df -Th
- Dateisystem Typ Größe Benutzt Verf. Verw% Eingehängt auf
- udev devtmpfs 2.0G 0 2.0G 0% /dev
- tmpfs tmpfs 393M 5.9M 388M 2% /run
- /dev/xvda2 xfs 119G 118G 1G 99% /
- tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
- tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
- tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
- tmpfs tmpfs 393M 0 393M 0% /run/user/0
Partitionstabelle mit "fdisk" auf neuer Disk revidieren
Damit ich nun also die zusätzlichen rund 120 GB neuen Speicherplatz auf meinem Debian Linux Server auch tatsächlich verwenden kann, müss die Partitionsatabelle neu geschrieben werden. Ich verwende hierzu wiederum das Utility "fdisk" und bearbeite '/dev/xvda'.
Hierbei gilt es festzuhalten, dass die Cloud Server Lösungen von Hostfactory von Haus aus und in aller Regel mit einer "bequem" zu verwaltenden Partitionstabelle daherkommen. In abweichenden Fällen müssen die unten ausgeführten Schritte möglicherweise leicht angepasst, respektive erweitert ausgeführt werden.
- # fdisk /dev/xvda
- Welcome to fdisk (util-linux 2.29.2).
- Changes will remain in memory only, until you decide to write them.
- Be careful before using the write command.
- Command (m for help):
Ich wähle "m", um die hier verfügbaren Optionen anzeigen zu lassen:
- Command (m for help): m
- Help:
- DOS (MBR)
- a toggle a bootable flag
- b edit nested BSD disklabel
- c toggle the dos compatibility flag
- Generic
- d delete a partition
- F list free unpartitioned space
- l list known partition types
- n add a new partition
- p print the partition table
- t change a partition type
- v verify the partition table
- i print information about a partition
- Misc
- m print this menu
- u change display/entry units
- x extra functionality (experts only)
- Script
- I load disk layout from sfdisk script file
- O dump disk layout to sfdisk script file
- Save & Exit
- w write table to disk and exit
- q quit without saving changes
- Create a new label
- g create a new empty GPT partition table
- G create a new empty SGI (IRIX) partition table
- o create a new empty DOS partition table
- s create a new empty Sun partition table
- Command (m for help):
Mit p lasse ich mir die aktuellen Partitionstabellen noch einmal anzeigen:
- Command (m for help): p
- Disk /dev/xvda: 240 GiB, 257698037760 bytes, 503316480 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
- Disklabel type: dos
- Disk identifier: 0x19ab9fb3
- Device Boot Start End Sectors Size Id Type
- /dev/xvda1 2046 3905535 3903490 1.9G 5 Extended
- /dev/xvda2 3905536 251658239 247752704 118.1G 83 Linux
- /dev/xvda5 2048 3905535 3903488 1.9G 82 Linux swap / Solaris
- Partition table entries are not in disk order.
Im aktuellen Fall wurde unter '/dev/xvda1' eine logische Partition erstellte und "darin" die Swap-Partition '/dev/xvda5. Diese beiden Partitionen interessieren uns für das Vergrössern des unter '/' verfügbaren Speicherplatzes nicht und wir beachten diese beiden Partitionen nicht weiter.
Ich lösche nun als nächstes die zu kleine Partition "/dev/xvda2". Dieser Vorgang ist grundsätzlich unproblematisch, zumal ich hier keine Daten, sondern lediglich eine Partition lösche und dies gem. Begrüssung beim starten von "fdisk" vorerst lediglich im Cache erfasst wird, nicht aber tatsächlich geändert wird:
- Welcome to fdisk (util-linux 2.29.2).
- Changes will remain in memory only, until you decide to write them.
- Be careful before using the write command.
Um sicher zu gehen, dass meine '/dev/xvda2' auch wirklich die Partitionsnummer 2 trägt, prüfe ich diese Partition:
- Command (m for help): i
- Partition number (1,2,5, default 5): 2
- Device: /dev/xvda2
- Start: 3905536
- End: 251658239
- Sectors: 247752704
- Cylinders: 15422
- Size: 118.1G
- Id: 83
- Type: Linux
- Start-C/H/S: 243/27/41
- End-C/H/S: 305/0/15
Perfekt, die Partition mit der Nummer 2 gilt für meinen Device '/dev/xvda2'. Ich lösche diese also mit d:
- Command (m for help): d
- Partition number (1,2,5, default 5): 2
- Partition 2 has been deleted.
Die Situation sieht nun also wie folgt aus:
- Command (m for help): p
- Disk /dev/xvda: 240 GiB, 257698037760 bytes, 503316480 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
- Disklabel type: dos
- Disk identifier: 0x19ab9fb3
- Device Boot Start End Sectors Size Id Type
- /dev/xvda1 2046 3905535 3903490 1.9G 5 Extended
- /dev/xvda5 2048 3905535 3903488 1.9G 82 Linux swap / Solaris
Ich lasse mir den ungenutzten nicht-partitionierten Speicherplatz anzeigen:
- Command (m for help): F
- Unpartitioned space /dev/xvda: 238.1 GiB, 255698403328 bytes, 499410944 sectors
- Units: sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- Start End Sectors Size
- 3905536 503316479 499410944 238.1G
- Command (m for help):
Wunderbar! Dann erstelle ich jetzt also auf '/dev/xvda2' die neue Partition über 238.1 GB:
- Command (m for help): n
- Partition type
- p primary (0 primary, 1 extended, 3 free)
- l logical (numbered from 5)
- Select (default p): p
- Partition number (2-4, default 2): 2
- First sector (3905536-503316479, default 3905536):
- Last sector, +sectors or +size{K,M,G,T,P} (3905536-503316479, default 503316479):
- Created a new partition 2 of type 'Linux' and of size 238.1 GiB.
- Partition #2 contains a xfs signature.
- Do you want to remove the signature? [Y]es/[N]o: n
- Command (m for help):
Und abschliessend setzen wir noch das "Boot Flag" auf die Partition 2:
- Command (m for help): a
- Partition number (1,2,5, default 5): 2
- The bootable flag on partition 2 is enabled now.
- Command (m for help):
Schauen wir uns die neue Situation noch einmal an:
- Command (m for help): p
- Disk /dev/xvda: 240 GiB, 257698037760 bytes, 503316480 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
- Disklabel type: dos
- Disk identifier: 0x19ab9fb3
- Device Boot Start End Sectors Size Id Type
- /dev/xvda1 2046 3905535 3903490 1.9G 5 Extended
- /dev/xvda2 * 3905536 503316479 499410944 238.1G 83 Linux
- /dev/xvda5 2048 3905535 3903488 1.9G 82 Linux swap / Solaris
- Partition table entries are not in disk order.
Das sieht wieder perfekt aus: Die Partition wurde vergrössert und das "Bootable Flag" auf der Partition 2 ist gesettzt ("*"). Wir dürfen also die neue Partitionstabelle mit dem "w"_Kommando zu schreiben:
- Command (m for help): w
- The partition table has been altered.
- Calling ioctl() to re-read partition table.
- Re-reading the partition table failed.: Das Gerät oder die Ressource ist belegt
- The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Linux VPS neustarten
Jetzt führen wir einen Neustart unseres Debian Linux Servers aus, damit diese Informationen auch tatsächlich übernommen werden können: # reboot
Ich lassen den Linux Server also neustarten und melde mich anschliessend erneut an, um die Situation abschliessend zu prüfen:
- # fdisk -l
- Disk /dev/xvda: 240 GiB, 257698037760 bytes, 503316480 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
- Disklabel type: dos
- Disk identifier: 0x19ab9fb3
- Device Boot Start End Sectors Size Id Type
- /dev/xvda1 2046 3905535 3903490 1.9G 5 Extended
- /dev/xvda2 3905536 503316479 499410944 238.1G 83 Linux
- /dev/xvda5 2048 3905535 3903488 1.9G 82 Linux swap / Solaris
- Partition table entries are not in disk order.
Sehr schön! Aber offenbar weiss jetzt an dieser stelle das hier eingerichtete XFS File System noch nichts vom zusätzlichen Speicherplatz:
- # df -h
- Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
- udev 3.9G 0 3.9G 0% /dev
- tmpfs 797M 9.0M 788M 2% /run
- /dev/xvda2 119G 1.1G 118G 1% /
- tmpfs 3.9G 0 3.9G 0% /dev/shm
- tmpfs 5.0M 0 5.0M 0% /run/lock
- tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
- tmpfs 797M 0 797M 0% /run/user/0
XFS-Dateisystem mit "xfs_growfs" vergrössern
Ich verwende nun also noch "xfs_growfs", um das Dateisystem auf meinem Linux Server unter '/' auf das Maximum zu vergrössern:
- # xfs_growfs -d /
- meta-data=/dev/xvda2 isize=512 agcount=59, agsize=533248 blks
- = sectsz=512 attr=2, projid32bit=1
- = crc=1 finobt=1 spinodes=0 rmapbt=0
- = reflink=0
- data = bsize=4096 blocks=30969088, imaxpct=25
- = sunit=0 swidth=0 blks
- naming =version 2 bsize=4096 ascii-ci=0 ftype=1
- log =Intern bsize=4096 blocks=2560, version=2
- = sectsz=512 sunit=0 blks, lazy-count=1
- realtime =keine extsz=4096 blocks=0, rtextents=0
- Datenblöcke von 30969088 auf 62426368 geändert.
Und wie sieht es denn jetzt aus?
- # df -h
- Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
- udev 3.9G 0 3.9G 0% /dev
- tmpfs 797M 9.0M 788M 2% /run
- /dev/xvda2 239G 118G 121G 51% /
- tmpfs 3.9G 0 3.9G 0% /dev/shm
- tmpfs 5.0M 0 5.0M 0% /run/lock
- tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
- tmpfs 797M 0 797M 0% /run/user/0
Sensationell: Es stehen unter '/' ab sofort total 240 GB Speicherplatz zur Verfügung und meine bereits vorhandenen Daten (118 GB) sind unverändert an Ort und Stelle verfügbar. Der Datenträger, resp. die entsprechende Partition ist wieder zu 49% frei.
Mit Begeisterung!
Andi Herzig