NASの共有ディレクトリのマウント【CentOS 7】
NASの共有ディレクトリをマウントします。
1. FTPホストへのアクセス
FTPを利用してNASの共有ディレクトリにアクセスする場合です。
ここでは、以下のような環境とします。
NAS IPアドレス |
192.168.1.194 |
共有ディレクトリパス |
/sataraid1/koho/ |
マウントディレクトリ |
/data_backup |
(1) curlftpfsのインストール
FTPクライアントのcurlftpfsをインストールします。
# yum --enablerepo=epel install curlftpfs
(2) NASアクセスユーザファイルの作成
コマンド上にユーザIDおよびパスワードが表示されないように、「.netrc」ファイルを作成します。
書式は以下の通りです。
machine (FTPホストIPアドレス)
login (ログインユーザID)
password (ログインパスワード)
【例】
machine 192.168.1.194
login koho
password koho
ファイルのパーミッションを「600」にします。
(3) NAS共有ディレクトリのマウント
マウント用ディレクトリを作成します。
curlftpfsコマンドでマウントを行います。(オプションは一例です。)
# curlftpfs -o allow_root,utf8 192.168.1.194://sataraid1/koho/ /data_backup
※ここでは、rootユーザのみアクセス許可をしています。
一般ユーザも許可したい場合は、「-o allow_other」とします。
マウントされたかどうか確認します。
最終行に表示されれば、OKです。
curlftpfs#ftp://192.168.1.194://sataraid1/koho/ fuse 954G 0 954G 0% /data_backup
(4) 自動マウントの設定
サーバの起動時に自動マウントするように設定します。
最終行に記述します。
curlftpfs#192.168.1.194://sataraid1/koho/ /data_backup fuse defaults 0 0
ここで、自動マウントの確認を行います。
既にマウントされている場合は、一旦アンマウントします。
再度マウントします。
エラーが表示されないでマウントされたら、OKです。
※場合によっては、ネットワークサービスが開始する前にマウントを行って、OS起動時にエラーが発生する可能性があります。その場合は以下のように対処して下さい。
※※※※OS起動時にエラーになる場合※※※※※
ネットワークサービス開始前にマウントしようとして、OS起動時にエラーになる場合があります。その場合には、以下のようにします。
(1) スクリプトの作成
NAS共有ドライブをマウントするスクリプトファイルを作成します。
※ここではファイル名を「nas_mount.sh」とします。
#!/bin/bash
curlftpfs -o allow_root,utf8 192.168.1.194://sataraid1/koho/ /data_backup
作成したスクリプトファイルに実行権限を付与します。
# chmod +x /root/nas_mount.sh
(2) サービスファイルの作成
(1)のスクリプトを動作させるサービスファイルを作成します。
※ここではサービス名を「nas-mount.service」にします。
# vi /etc/systemd/system/nas-mount.service
[Unit]
Description=nas mount
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/root/nas_mount.sh
Restart=always
Type=simple
RemainAfterExit=yes
User=root
[Install]
WantedBy=multi-user.target
ここで使用しているパラメータの内容は、以下の通りです。
■[Unit]
プロセスの依存関係や起動順序などを設定するセクションです。
Description |
サービスの説明。 |
Wants |
依存関係にあるユニット名。ここで指定したユニットが必要であり、かつ、そのユニットが起動に失敗しても自身は起動を行う。 |
After |
ここで指定したユニットが起動した後に、実行を行う。 |
■[Service]
サービスのオプションを設定します。
ExecStart |
プロセスを起動するコマンドを指定します。 |
Restart |
サービスプロセス停止時において再起動を行う条件を設定します。 always:常に再起動される。 |
Type |
プロセスの起動タイプ。 simple:通常のプロセス。 |
RemainAfterExit |
「yes」にすると、コマンドが完了したあともサービスが起動状態として認識。 |
User |
実行ユーザ。ここでは「root」で実行します。 |
■[Install]
サービスの自動起動(systemctl enable|disable)で使用されます。
WantedBy |
[Unit]の「Wants」で指定したユニット名.wantsに自ユニットへのシンボリックリンクを作成して、指定したユニットが起動される時に自ユニットを起動させる。 |
(3) サービスの登録、自動起動、スタート
デーモン設定ファイルを再読み込みして、追記したサービスを認識させます。
# systemctl daemon-reload
自動起動を設定します。
# systemctl enable nas-mount.service
サービスを起動します。
# systemctl start nas-mount.service
(4) 動作確認
作成したサービスが正常に動作するか確認します。
一旦、アンマウントします。
サービスを再起動します。
# systemctl restart nas-mount.service
NASがマウントされているか確認します。
最終行に
があればOKです。
2. トラブルシューティング
dr-xr-xr-x. 5 root root 4096 2月 26 2020 boot
d?????????? ? ? ? ? ? data_backup
たまに、マウントポイントの「/data_backup」のディレクトリ情報が上記のように「?」となってしまい、アクセスしようとすると、
ls: /data_backup にアクセスできません: 通信端点が接続されていません
というエラーメッセージが表示されることがあります。
そして、通常のumountではアンマウントできないこともあります。
その場合には強制アンマウントを行います。
# fusermount -zu /data_backup
その上で再度マウントを行います。
# systemctl start nas-mount.service
最終更新:2021年04月15日 07:57