Das Problem
Unter CentOS/RHEL 7 werden keine Dateisystem-Volumes gemäß den /etc/fstab-Einträgen in der richtigen Reihenfolge gemountet.
Die Lösung
Im Gegensatz zu CentOS/RHEL 6 und früheren Versionen ist der Startvorgang auf CentOS/RHEL 7 schneller. Aufgrund der parallelen Natur des Prozessstarts sind bestimmte Startreihenfolgen von Zieleinheiten nicht deterministisch. Alle Dateisysteme sind eine systemd-Einheit, daher entspricht ihre Reihenfolge zum Mounten nicht mehr dem /etc/fstab-Eintrag.
Dateisysteme sind System-„Einheiten " Typ. Genauer gesagt handelt es sich um eine Einheit vom Typ „mount “. Wenn die Dateisystemnamen in der /etc/fstab angegeben sind, konvertiert das System diese Einträge in dynamische „Mount“-Unit-Typen.
Montage von Dateisystemen in der richtigen Reihenfolge
Um Dateisysteme der Reihe nach zu mounten, erstellen Sie die Mount-Unit und legen Sie sie in /etc/systemd/system/ ab . Dynamisch erstellte Mount-Unit-Typen befinden sich in /run/systemd/generator/ Lage. Kopieren Sie die Unit-Dateien in das Verzeichnis /run/systemd/generator/, um sie als Vorlage für die statischen zu verwenden. Nachdem Sie die Mount-Unit-Datei erstellt haben, kopieren Sie die Datei in den Speicherort /etc/systemd/system/. Nachfolgend finden Sie einige Beispiele für das Festlegen der Mount-Reihenfolge in CentOS/RHEL 7-Systemen:
Dateiname:/etc/systemd/system/test-data1.mount
# cat /etc/systemd/system/test-data1.mount [Unit] Description=My test mount Requires=boot.mount tmp.mount After=boot.mount tmp.mount [Mount] What=/dev/datavg/data1lv Where=/test/data1 Type=xfs [Install] WantedBy=multi-user.target
Die „Erfordert “ bedeutet, dass dieses Dateisystem nicht gemountet wird, es sei denn, die Dateisysteme /boot und /tmp sind vorhanden. Die „Nach ” bedeutet, dass das Dateisystem /test/data1 erst gemountet wird, nachdem die Dateisysteme /boot und /tmp gemountet wurden.
Sehen Sie sich nun /test/data1/data2 an Dateisystem-Unit-Datei.
Dateiname:/etc/systemd/system/test-data1-data2.mount
# cat /etc/systemd/system/test-data1-data2.mount [Unit] Description=My test mount 2 [Mount] What=/dev/datavg/data2lv Where=/test/data1/data2 Type=xfs [Install] WantedBy=multi-user.target
Bitte beziehen Sie sich auf systemd.mount Manpage.
# man systemd.mount "If a mount point is beneath another mount point in the file system hierarchy, a dependency between both units is created automatically."
Die Unit test-data1.mount wird zuerst konfiguriert und gemountet, die Unit test-data1-data2.mount wird immer danach gemountet. Die /etc/fstab-Reihenfolge wird hier jedoch in der Boot-Sequenz berücksichtigt. Es wird vom manuellen „Mount“-Befehl als obige Schritte betrachtet.