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
※「epel」リポジトリをインストールする方法は、yumのリポジトリの追加登録方法(CentOS 7) を参照して下さい。

(2) NASアクセスユーザファイルの作成
コマンド上にユーザIDおよびパスワードが表示されないように、「.netrc」ファイルを作成します。
# vi ~/.netrc
書式は以下の通りです。
machine (FTPホストIPアドレス)
login (ログインユーザID)
password (ログインパスワード)
【例】
machine 192.168.1.194
login koho
password koho
ファイルのパーミッションを「600」にします。
# chmod 600 ~/.netrc

(3) NAS共有ディレクトリのマウント
マウント用ディレクトリを作成します。
# mkdir /data_backup
curlftpfsコマンドでマウントを行います。(オプションは一例です。)
# curlftpfs -o allow_root,utf8 192.168.1.194://sataraid1/koho/ /data_backup
※ここでは、rootユーザのみアクセス許可をしています。
一般ユーザも許可したい場合は、「-o allow_other」とします。

マウントされたかどうか確認します。
# df -hT
最終行に表示されれば、OKです。
curlftpfs#ftp://192.168.1.194://sataraid1/koho/ fuse       954G     0  954G    0% /data_backup

(4) 自動マウントの設定
サーバの起動時に自動マウントするように設定します。
# vi /etc/fstab
最終行に記述します。
curlftpfs#192.168.1.194://sataraid1/koho/ /data_backup  fuse    defaults        0 0

ここで、自動マウントの確認を行います。
既にマウントされている場合は、一旦アンマウントします。
# umount /data_backup
再度マウントします。
# mount -a
エラーが表示されないでマウントされたら、OKです。

※場合によっては、ネットワークサービスが開始する前にマウントを行って、OS起動時にエラーが発生する可能性があります。その場合は以下のように対処して下さい。


※※※※OS起動時にエラーになる場合※※※※※
ネットワークサービス開始前にマウントしようとして、OS起動時にエラーになる場合があります。その場合には、以下のようにします。
(1) スクリプトの作成
NAS共有ドライブをマウントするスクリプトファイルを作成します。
※ここではファイル名を「nas_mount.sh」とします。
# vi /root/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) 動作確認
作成したサービスが正常に動作するか確認します。
一旦、アンマウントします。
# umount /data_backup
サービスを再起動します。
# systemctl restart nas-mount.service
NASがマウントされているか確認します。
# df -hT
最終行に
curlftpfs#ftp://192.168.1.194://sataraid1/koho/ fuse 954G 0 954G 0% /data_backup
があればOKです。


2. トラブルシューティング

dr-xr-xr-x.   5 root root 4096  226  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