0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【実験】GitLabのデータをNFSで管理する -事前準備-

Posted at

GitLabのリポジトリデータ等を外部のNFSサーバーで管理する方法を試してみたいと思います。
今回はその事前準備としてNFSサーバーの使い方を学習します。

NFSとは

NFS(Network File System)は、名前の通りネットワーク越しでファイルのやり取りが可能となるシステムです。
Windowsで言う共有フォルダのようなものです。Windowsの場合はSMBというプロトコルを使用しています。

NFSサーバーの設定

それではNFSの設定を試していきたいと思います。
なお例として今回使用するNFSサーバーのIPは192.168.0.2、NFSクライアントのIPは192.168.0.3とします。
まずはNFSサーバー側にNFSサービスのインストールを行います。

sudo yum install -y nfs-utils

インストール完了後、共有ディレクトリを作成します。
ディレクトリの作成後、作成したディレクトリのパスをコピーしておきます。

mkdir <共有ディレクトリ名>
cd <共有ディレクトリ>
pwd #実行後に表示されたパスをコピー
例:
/home/nfs

続いて/etc/exportsファイルに以下のように共有させるディレクトリのパスと共有させたいクライアントのIPアドレスを記載します。
オプションを指定する場合は、クライアントのIPアドレスの後ろに()をつけて、その中にオプションを記載します。
オプションを複数指定する場合は、「,」で区切ります。

/etc/exports
<pwdコマンドでコピーしたパス> <クライアントのIPアドレス>(<オプション>)
オプション一例
rw:クライアントに書き込みを許可
async:非同期書き込みを有効にする
no_root_squash:クライアント側のroot権限にて実行可能とする
:
/home/nfs 192.168.0.3(rw,async,no_root_squash)

NFS自体の設定は完了ですが、Firewallを設定していない為このままではNFSの通信が弾かれてしまいます。
以下のコマンドを実行し、NFSの通信を許可します。
ちなみにクライアント側はFirewallの穴あけは必要無いみたいです。

sudo firewall-cmd --permanent --zone=public --add-service=nfs
sudo firewall-cmd --reload
sudo firewall-cmd --list-all #serviceにnfsが追加されていればOK

準備が完了しましたら、NFSのサービスを起動させます。
ついでにOS起動時に自動でサービスを立ち上げるようにしています。

sudo systemctl status nfs-server
sudo systemctl start nfs-server
sudo systemctl status nfs-server
sudo systemctl enable nfs-server

以上でNFSサーバー側の作業は完了です。

#NFSクライアントの設定
次にクライアント側の設定を実施します。
まずは共有ディレクトリをマウントする為のディレクトリを作成します。

mkdir <マウントディレクトリ名>
cd <マウントディレクトリ>
pwd #実行後に表示されたパスをコピー

続いてmountコマンドを使用してNFSサーバーの共有ディレクトリをマウントします。
この時、オプションで-t nfsを指定します。

sudo mount -t nfs -o rw <NFSサーバーのIPアドレス>:<NFSサーバーの共有ディレクトリへのパス> <コピーしたマウントディレクトリへのパス>
例:
sudo mount -t nfs -o rw 192.168.0.2:/home/nfs /mnt/nfs

上記コマンドがエラー無しで通ったら、df -Thコマンドを実行して正しくマウントされているか確認します。

sudo df -Th
例:
ファイルシス             タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs                 devtmpfs   3.9G     0  3.9G    0% /dev
tmpfs                    tmpfs      3.9G   12K  3.9G    1% /dev/shm
tmpfs                    tmpfs      3.9G  9.7M  3.9G    1% /run
tmpfs                    tmpfs      3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root  xfs         17G  4.4G   13G   26% /
/dev/vda1                xfs       1014M  150M  865M   15% /boot
tmpfs                    tmpfs      783M     0  783M    0% /run/user/0
192.168.0.2:/home/nfs    nfs4        22G  1.4G   21G    6% /mnt/nfs

動作の確認

NFSサーバーとNFSクライアントにて設定が完了しましたら、クライアント側にて正しく共有ができているか確認してみます。
以下コマンドを実行します。

touch <マウントディレクトリへのパス>/test.txt
例:
touch /mnt/nfs/test.txt

エラーが返ってこなければ完了です。
続いて上記コマンドで作成したテストファイルが格納されているかサーバー側で確認します。

ll <共有ディレクトリへのパス>
例:
ll /home/nfs

上記コマンド実行後、クライアント側で作成したテストファイルtest.txtが表示されていれば正しくNFSで共有できている事を確認できます。
以上で事前準備は完了です。
次回は今回実施した内容を応用し、GitLabのデータをNFSサーバーで管理するように設定します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?