Anfügen eines zusätzlichen Datenträgers an einen Linux-Server

Beschreibung

Dieser Abschnitt beschreibt das Hinzufügen und Verbinden eines neuen, „rohen“ Datenträgers mit einem bestehenden Linux-Server wie RHEL / CentOS oder Debian / Ubuntu.

In diesem Beispiel wird ein zusätzlicher Datenträger mit einem Volumen von 90 GB hinzugefügt, der als ‘/data’ Partition verbunden wird.

Das Beispiel beschreibt den Prozess der Verbindung des neuen Datenträgers auf der Basis der CentOS Linux 7 Distribution. Es werden die Prozesse des Erstellens einer Partition, des Formatierens der Partition, des Erstellens eines Einhängepunktes (Mountpoint) und des anschließenden Einhängens der erstellten Partition, sowohl manuell als auch automatisch, erörtert.

Die Partition wird mit dem Befehl fdisk erstellt. Dies ist ein Kommandozeilenprogramm zur Anzeige und Verwaltung von Festplatten und Partitionen in Linux-Systemen.

Um Informationen über die angeschlossenen Datenträger und die Partitionen zu erhalten, bevor der neue Datenträger angeschlossen wird:

fdisk -l

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 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 label type: dos
Disk identifier: 0x000a25ba

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     1026047      512000   83  Linux
/dev/vda2         1026048    10485759     4729856   8e  Linux LVM

Disk /dev/mapper/vg0-rootfs: 4840 MB, 4840226816 bytes, 9453568 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

Sobald die neue 90-GB-Platte angeschlossen ist, gibt fdisk -l Folgendes an:

fdisk -l

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 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 label type: dos
Disk identifier: 0x000a25ba

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     1026047      512000   83  Linux
/dev/vda2         1026048    10485759     4729856   8e  Linux LVM

Disk /dev/mapper/vg0-rootfs: 4840 MB, 4840226816 bytes, 9453568 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 /dev/vdb: 96.6 GB, 96636764160 bytes, 188743680 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

Man sieht, dass ein neues Gerät im System aufgetaucht ist - ein virtueller Datenträger: ‘Disk /dev/vdb: 96.6 GB’.

Erstellen einer Partition

In diesem Beispiel wird eine einzige Partition erstellt, die den gesamten freien Speicherplatz auf dem Datenträger belegt. Mit anderen Worten: Die Größe der Partition entspricht der Größe des Datenträgers.

Bemerkung

Für die Partitionierung eines neuen Datenträgers stehen in der Kommandozeile zwei Befehle zur Verfügung: fdisk und parted. Von diesen ist fdisk das ältere Programm und sein Hauptmanko ist, dass es nur MBR-Partitionen erstellen kann. Neuer ist parted, das sowohl MBR- als auch GPT-Partitionen erstellen kann.

Es kann keine Partitionen aufnehmen, die größer als 2 TB sind, und es kann nicht mehr als 4 primäre Partitionen geben. Die GPT (GUID Partition Table) hingegen kann beide Anforderungen erfüllen, ist aber Teil des EFI-Standards. Dies setzt daher voraus, dass Ihr Kernel EFI unterstützt. Die neueste Version des Kernels unterstützt EFI ebenso wie fast alle der aktuellen Distributionen.

Da die maximal zulässige Datenträgergröße 2 TB beträgt, der Datenträger in diesem Beispiel aber nur 90 GB groß ist, wird das Dienstprogramm fdisk verwendet.

Erstellen der Partition.

  1. Führen Sie fdisk mit diesem Befehl aus:
fdisk /dev/vdb
  1. Das fdisk-Programm zeigt das folgende Menü an:
fdisk /dev/vdb

Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x6561828e.
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
  1. Um eine neue Partition zu erstellen, geben Sie ‘n’ (‘Add a new partition’) ein und drücken Sie ‘Enter’:
Command (m for help): n

Partition type:
 p   primary (0 primary, 0 extended, 4 free)
 e   extended
Select (default p):
  1. Erstellen Sie eine primäre Partition. Geben Sie ‘p’ ein und drücken Sie ‘Enter’.
Select (default p): p
Partition number (1-4, default 1):
  1. Dies wird die einzige Partition auf dem Datenträger sein, Nummer 1. Geben Sie ‘1’ ein und drücken Sie ‘Enter’.
Partition number (1-4, default 1): 1
First sector (2048-188743679, default 2048):
  1. Wählen Sie den Standardwert ‘default 2048’. Drücken Sie ‘Enter’.
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-188743679, default 188743679):
  1. Wählen Sie den Standardwert ‘default 188743679’. Drücken Sie ‘Enter’.
Using default value 188743679
Partition 1 of type Linux and of size 90 GiB is set
  1. Nachdem Sie die Partition eingegeben haben, wählen Sie die Option ‘w’ , um die Partitionstabelle auf den Datenträger zu schreiben. Geben Sie ‘w’ ein und drücken Sie ‘Enter’.
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
  1. Wenn alles in Ordnung ist, wurde der Datenträger korrekt definiert und ist nun bereit für die Formatierung. Da dies die erste Partition ist, erkennt Linux sie als /dev/vdb1, während der Datenträger, auf dem sich die Partition befindet, weiterhin als /dev/vdb erkannt wird.

Formatierung der Partition

  1. Formatieren Sie die neue Partition /dev/vdb1 als das Dateisystem ‘ext4’:
mkfs -t ext4 /dev/vdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
5898240 inodes, 23592704 blocks
1179635 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2172649472
720 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Bemerkung

Ersetzen Sie beim Formatieren ‘/dev/vdb1’ durch den Pfad Ihrer eigenen Partition.

  1. Führen Sie eine Prüfung mit dem Befehl blkid durch:
blkid
/dev/mapper/vg0-rootfs: UUID="1e4b1167-6fa3-4d44-bdb7-282841e0b31e" TYPE="ext4"
/dev/vda2: UUID="9stkBB-ZiYX-S7sb-rGxJ-idrH-m0ov-OTEuNs" TYPE="LVM2_member"
/dev/vda1: UUID="ab1dd6e8-62a4-4752-befe-cda7f0e8383a" TYPE="ext4"
/dev/vdb1: UUID="10396c2f-9335-4966-8e94-377e413045b4" TYPE="ext4"

Erstellen eines Mountpoints

  1. Nachdem der Datenträger nun in Partitionen aufgeteilt und formatiert wurde, sollte ein Mountpoint bzw. Einhängepunkt ausgewählt werden. Dies ist der Ort, von dem aus Sie in Zukunft auf den Datenträger zugreifen werden. Für das vorliegende Beispiel wird der Pfad ‘/data’ verwendet.
mkdir /data

Jetzt ist alles bereit für das Einhängen der Partition in den Mountpoint.

Mounten der Partition

  1. Um die Partition manuell zu mounten, verwenden Sie den folgenden Befehl:
mount /dev/vdb1 /data

Automatisches Mounten einer Partition

  1. Um das automatische Einhängen der Partition am Mountpoint zu ermöglichen, sind Änderungen in ‘/etc/fstab’ erforderlich. Fügen Sie die folgende autoconnect-Zeile zu dieser Konfigurationsdatei hinzu:
UUID=10396c2f-9335-4966-8e94-377e413045b4 /data ext4 defaults 0 0

Nachdem die Änderungen vorgenommen wurden, sieht die Datei /etc/fstab in etwa so aus:

# /etc/fstab
# Created by anaconda on Thu Sep 14 14:20:31 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg0-rootfs  /                       ext4    defaults        1 1
UUID=ab1dd6e8-62a4-4752-befe-cda7f0e8383a /boot                   ext4    defaults        1 2
UUID=10396c2f-9335-4966-8e94-377e413045b4 /data ext4 defaults 0 0

Wurde der unter Punkt 13 beschriebene Prozess des Mountens vor der Änderung nicht durchgeführt, muss er jetzt nachgeholt werden.

  1. Um den Vorgang abzuschließen und zu zeigen, dass der Anschluss des Datenträgers erfolgreich war, verwenden Sie den Befehl df -h:
df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vg0-rootfs  4,4G  1,6G  2,5G  40% /
devtmpfs                3,9G     0  3,9G   0% /dev
tmpfs                   3,9G     0  3,9G   0% /dev/shm
tmpfs                   3,9G  8,6M  3,9G   1% /run
tmpfs                   3,9G     0  3,9G   0% /sys/fs/cgroup
/dev/vdb1                89G   57M   84G   1% /data
/dev/vda1               477M  121M  327M  28% /boot
tmpfs                   799M     0  799M   0% /run/user/0

Wie man hier sieht, wurde die Partition /dev/vdb1 erfolgreich in /data eingehängt. Das Gesamtvolumen der Partition beträgt weniger als 90 GB, da ein Teil des Speicherplatzes für administrative Zwecke reserviert ist.

Der Datenträger ist nun im Allgemeinen einsatzbereit.