Herkömmliche fstab-Optionen
Wenn Volumes bei Linux-Instanzen beim Booten der Instanz automatisch gemountet werden sollen, müssen Sie einige spezifische Optionen in der Datei /etc/fstab
festlegen. Andernfalls kann die Instanz möglicherweise nicht gestartet werden.
Diese Schritte gelten für Block Volumes, bei denen keine konsistenten Gerätepfade aktiviert sind. Wenn konsistente Gerätepfade für das Block-Volume aktiviert sind, verwenden Sie stattdessen die /etc/fstab-Optionen für Block-Volumes mit konsistenten Gerätepfaden.
Volume-UUIDs
Bei Linux-Betriebssystemen ist die Reihenfolge, in der Volumes angehängt werden, nicht deterministisch, sodass sie bei jedem Neustart geändert werden kann. Wenn Sie mit dem Gerätenamen wie /dev/sdb
auf ein Volume verweisen und mehr als ein Nicht-Root-Volume vorhanden ist, können Sie nicht garantieren, dass das Volume, das Sie für einen bestimmten Gerätenamen mounten möchten, auch tatsächlich gemountet wird.
Um dieses Problem zu vermeiden, geben Sie die Volume-UUID in der Datei /etc/fstab
anstelle des Gerätenamens an. Wenn Sie die UUID verwenden, gleicht der Mount-Prozess die UUID im Superblock mit dem Mount Point ab, der in der Datei /etc/fstab
angegeben ist. Dieser Prozess garantiert, dass immer dasselbe Volume am selben Mount Point gemountet wird.
UUID für ein Volume bestimmen
-
Gehen Sie wie folgt vor, um ein Volume anzuhängen und eine Verbindung mit dem Volume herzustellen.
-
Nachdem die Volumes verbunden wurden, erstellen Sie das gewünschte Dateisystem auf jedem Volume mit den standardmäßigen Linux-Tools.
In den restlichen Schritten wird davon ausgegangen, dass drei Volumes verbunden wurden und auf jedem Volume ein XFS-Dateisystem erstellt wurde.
-
Führen Sie den folgenden Befehl aus, um die UUIDs für die Volumes mit dem blkid-Utility abzurufen:
sudo blkid
Die Ausgabe sieht in etwa wie folgt aus:
{{ /dev/sda3: UUID="1701c7e0-7527-4338-ae9f-672fd8d24ec7" TYPE="xfs" PARTUUID="82d2ba4e-4d6e-4a33-9c4d-ba52db57ea61"}} {{ /dev/sda1: UUID="5750-10A1" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="082c26fd-85f5-4db2-9f4e-9288a3f3e784"}} {{ /dev/sda2: UUID="1aad7aca-689d-4f4f-aff0-e0d46fc1b89f" TYPE="swap" PARTUUID="94ee5675-a805-49b2-aaf5-2fa15aade8d5"}} {{ /dev/sdb: UUID="699a776a-3d8d-4c88-8f46-209101f318b6" TYPE="xfs"}} {{ /dev/sdd: UUID="85566369-7148-4ffc-bf97-50954cae7854" TYPE="xfs"}} {{ /dev/sdc: UUID="ba0ac1d3-58cf-4ff0-bd28-f2df532f7de9" TYPE="xfs"}}
Das Root-Volume in dieser Ausgabe ist
/dev/sda*
. Die zusätzlichen Remote-Volumes sind:/dev/sdb
/dev/sdc
/dev/sdd
-
Um die Volumes automatisch an
/mnt/vol1
,/mnt/vol2
bzw./mnt/vol3
anzuhängen, erstellen Sie die drei Verzeichnisse mit den folgenden Befehlen:bash-4.2$ sudo mkdir /mnt/vol1 {{ bash-4.2$ sudo mkdir /mnt/vol2}} {{ bash-4.2$ sudo mkdir /mnt/vol3}}
Optionen _netdev und nofail verwenden
Standardmäßig wird die Datei /etc/fstab
vor dem Start des Initiators verarbeitet. Konfigurieren Sie den Mount-Prozess so, dass er vor dem Mounten der Volumes initiiert wird, indem Sie die Option _netdev
in jeder Zeile der Datei /etc/fstab
angeben.
Wenn Sie ein benutzerdefiniertes Image einer Instanz erstellen, bei der die Volumes (mit Ausnahme des Root-Volumes) in der Datei /etc/fstab
aufgeführt sind, können Instanzen nicht über das benutzerdefinierte Image gestartet werden. Um dieses Problem zu vermeiden, geben Sie die Option nofail
in der Datei /etc/fstab
an.
Im Beispielszenario mit drei Volumes lauten die /etc/fstab
-Dateieinträge für die Volumes mit den Optionen _netdev
und nofail
folgendermaßen:
UUID=699a776a-3d8d-4c88-8f46-209101f318b6 /mnt/vol1 xfs defaults,_netdev,nofail 0 2
UUID=ba0ac1d3-58cf-4ff0-bd28-f2df532f7de9 /mnt/vol2 xfs defaults,_netdev,nofail 0 2
UUID=85566369-7148-4ffc-bf97-50954cae7854 /mnt/vol3 xfs defaults,_netdev,nofail 0 2
Nachdem Sie die Datei /etc/fstab
aktualisiert haben, mounten Sie die Volumes mit dem folgenden Befehl:
bash-4.2$ sudo mount -a
Starten Sie die Instanz mit dem folgenden Befehl neu, um zu bestätigen, dass die Volumes beim Neustart ordnungsgemäß gemountet sind:
bash-4.2$ sudo reboot
Probleme mit der Datei /etc/fstab beheben
Wenn die Instanz nach der Aktualisierung der Datei /etc/fstab
nicht neu gestartet werden kann, müssen Sie die Änderungen an der Datei /etc/fstab
möglicherweise rückgängig machen. Um die Datei zu aktualisieren, stellen Sie zunächst eine Verbindung mit der seriellen Konsole für die Instanz her. Wenn Sie über die serielle Konsolenverbindung auf die Instanz zugreifen können, können Sie die an der Datei /etc/fstab
vorgenommenen Änderungen entfernen, auskommentieren oder korrigieren.