以下の例は、再起動時に特定のパスの下にディスクを自動的にマウントする systemd スクリプトを作成する方法を示しています。
1. コマンド「blkid」を使用して、ファイルシステムの UUID を確認します。
# blkid /dev/sdb /dev/sdb: UUID="5813cd72-ff30-44bc-a7a3-27c68fe3e6c7" UUID_SUB="ccd243dc-1481-403f-aa51-1502a95cdf2f" TYPE="btrfs"
2. ファイルシステムをマウントするには、新しいマウント ユニットを作成する必要があります。マウント ユニットは、それらが制御するマウント ポイント ディレクトリに基づいて名前を付ける必要があります。例:マウント ポイント /var/lib/docker は、ユニット ファイル var-lib-docker.mount で構成する必要があります。ファイル システム パスをユニット名に変換するために使用されるエスケープ ロジックの詳細については、systemd.unit のマンページを参照してください。
# vi /etc/systemd/system/var-lib-docker.mount [Unit] Description=Docker mount [Mount] What=/dev/disk/by-uuid/5813cd72-ff30-44bc-a7a3-27c68fe3e6c7 Where=/var/lib/docker Type=btrfs Options=defaults [Install] WantedBy=multi-user.target
「What」のオプションは、UUID、LABEL、ディスクへのパスです
3. 起動後に systemd ユニットを起動できるようにします。
# systemctl enable var-lib-docker.mount
4. 以下の docker サービス スクリプトは、マウント サービスが呼び出された後にのみサービスが開始されるように変更されています。
# cat /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket var-lib-docker.mount ### Added mount unit for docker service to wait Requires=docker.socket ...
5. ノードを再起動し、マウント サービス ユニットのステータスを確認します。
# shutdown -r now
# systemctl status var-lib-docker.mount ● var-lib-docker.mount - Docker mount Loaded: loaded (/etc/systemd/system/var-lib-docker.mount; enabled; vendor preset: disabled) Active: active (mounted) since Tue 2016-06-07 02:06:07 IST; 54s ago Where: /var/lib/docker What: /dev/sdb Process: 416 ExecMount=/bin/mount /dev/disk/by-uuid/5813cd72-ff30-44bc-a7a3-27c68fe3e6c7 /var/lib/docker -n -t btrfs -o defaults (code=exited, status=0/SUCCESS) Jun 07 02:06:07 OL7-docker-TD systemd[1]: Mounting Docker mount... Jun 07 02:06:07 OL7-docker-TD systemd[1]: Mounted Docker mount.
6. 「mount」コマンドでマウント ポイントを確認します。
# mount | grep docker /dev/sdb on /var/lib/docker type btrfs (rw,relatime,seclabel,space_cache)
マウント ユニットを別のサービス操作の一部として追加することはできません。利用可能な systemd ユニット タイプ:
ユニット タイプ ファイル | 拡張子 | 説明 |
---|---|---|
サービス ユニット | .service | システム サービス。 |
対象ユニット | .target | systemd ユニットのグループ。 |
オートマウント ユニット | .automount | ファイル システムの自動マウント ポイント。 |
デバイス ユニット | .device | カーネルによって認識されるデバイス ファイル。 |
マウント ユニット | .mount | ファイル システムのマウント ポイント。 |
パス単位 | .path | ファイル システム内のファイルまたはディレクトリ。 |
スコープユニット | .scope | 外部で作成されたプロセス。 |
スライス単位 | .slice | システム プロセスを管理する、階層的に編成されたユニットのグループ。 |
スナップショット ユニット | .snapshot | systemd マネージャーの保存された状態。 |
ソケットユニット | .socket | プロセス間通信ソケット。 |
ユニットの交換 | .swap | スワップ デバイスまたはスワップ ファイル。 |
タイマー単位 | .timer | systemd タイマー。 |
CentOS/RHEL 6 でマルチパスを使用する場合に、ASM ディスクのディスク権限を設定する udev ルールを設定する方法
CentOS / RHEL でディスクの不良ブロックまたはディスク エラーをチェックする方法