さくらのクラウドのNFSアプライアンスを使ってみよう

さくらのクラウドにファイルストレージの機能があるはご存知でしょうか。今年の9月に『NFS（アプライアンス）』がリリースされたのです。
https://cloud-news.sakura.ad.jp/2017/09/07/nfs_appliance_release/
https://cloud-news.sakura.ad.jp/2017/09/28/nfsappliance_planupdate/
#概要
プランは全てHDDで100GB、500GB、1TB、2TB、4TBの5つあり、NFSv4とNFSv3で接続することが可能です。データをそのまま上位の容量のプランへ複製する「クローン」機能もあります。
詳ししくは下記のサイトを参照して下さい。
https://cloud.sakura.ad.jp/specification/option/#option-content05
#使い方
NFSアプライアンスの仕様も記載しながら、初心者にもわかりやすく説明します。
##作成方法
さくらのクラウドにログインしてコントロールパネルを開きます。
<font color="Red">※NFSアプライアンスを作成する前にスイッチが作成済みであることを確認して下さい。なお、ルータ＋スイッチには接続できません。</font>
サイドバーのアプライアンスのところにあるNFSを選択します。
![コンパネ1.png](https://qiita-image-store.s3.amazonaws.com/0/177215/2352da82-5c3d-543f-ac2f-854c8e11628d.png)
追加をクリックして設定画面を開きます。
![create_nfs_fw.png](https://qiita-image-store.s3.amazonaws.com/0/177215/a56db28b-7a5b-6af3-1810-6148e25685c7.png)

必要なパラメータを入力します。

| 必須入力項目          | 内容                                        | 
|:--------------|:--------------------------------------------|
| 接続先スイッチ | NFSアプライアンスを接続するスイッチを選択します | 
| プラン | NFSアプライアンスのディスクの容量を選択します | 
| IPv4アドレス  | NFSアプライアンスのネットワークインタフェースに付与するIPアドレスを入力します <br><font color="Red">※作成後にIPアドレスを変更することはできません。<BR>※IPv6は非対応です</font> | 
| ネットマスク  |  設定したIPアドレスのネットマスクを選択します | 

作成をクリックすると確認画面が表示されます。

![chk.png](https://qiita-image-store.s3.amazonaws.com/0/177215/5d109c2b-f455-bfd9-eda1-5eafb83ff9d2.png)

問題無い場合は作成をクリックします。

![create_bar.png](https://qiita-image-store.s3.amazonaws.com/0/177215/61f69820-22b1-4ae8-2d5d-7c40f3988513.png)

閉じるをクリックして閉じます。

![create_nfs_ok.png](https://qiita-image-store.s3.amazonaws.com/0/177215/25273769-9e50-332f-073a-b8284c5f83c2.png)

有効状態が利用可能になれば、アプライアンスのデプロイは完了しています。
ただし、デプロイ完了後にDiskのフォーマットが行われている為、容量によってはマウントできる状態なるまで5分～15分かかる場合があります。

##接続方法
接続するサーバがNFSアプライアンスと同じスイッチに接続されていること確認して下さい。
作成したNFSアプライアンスに接続するには、ユーティリティが必要です。
必要なパッケージはディストリビューション毎に異なるので、利用者の多いCentOSとUbuntuのコマンドを例示します。
###CentOS
```shell-session
[root@Server01 ~]# yum install -y nfs-utils 
```
###Ubuntu
```shell-session
ubuntu@Server02:~$ sudo apt-get -y install nfs-common 
```
###マウント

各クライアントからNFSアプライアンスを使用するためには、NFSアプライアンスに対してマウントする必要があります。
NFSアプライアンスは次のような仕様となっています。
<font color="Green">･接続元の制限はしていません。
･マウントポイントは/exportで固定です。
･NFSv4とNFSv3で接続可能です。
･idmapのドメイン名はlocaldomainです。
･root権限でマウントすることを前提にしている為、一般ユーザ権限で使用する場合はNFSv3を使用してください。

基本的なマウントコマンド

```shell-session
[root@Server01 ~]# mount <NFSアプライアンスのIPアドレス>:/export /<マウントポイント>
```
`-o`をつけることで様々なオプションを指定することが可能です。 
複数のオプションを指定する場合は`,`を間にはさみます。

```shell-session
[root@Server01 ~]# mount -v -o vers=3,rsize=131072,wsize=131072 192.168.1.250:/export /mnt/nfs
```

| オプション         | 内容                                                      |  設定例 |
|:--------------|:--------------------------------------------------------------|:---------|
| vers | NFSで接続するバージョンを指定する。NFSv3で接続する際は vers=3 と指定する | vers=3
| rsize | リードバッファサイズを指定する。 4096の倍数で指定する| rsize=131072
| wsize | ライトバッファサイズを指定する。 4096の倍数で指定する| wsize=131072
| hard	| サーバが応答しなくなると、応答するまで再試行が続けられます。| hard |
| soft	| サーバが応答しなくなるとエラーを返します。| soft |
| intr 	| hardオプションを指定した場合に、該当プロセスをkillできるようにする。| intr  |


`-v`をつけることで詳細な出力を出すことが可能です。 

```shell-session
[root@Server01 ~]# mount -v -o vers=3 192.168.1.250:/export /mnt/nfs
mount.nfs: timeout set for Tue Dec 19 16:27:50 2017
mount.nfs: trying text-based options 'vers=3,addr=192.168.1.250'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.1.250 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.1.250 prog 100005 vers 3 prot UDP port 56787
```
###自動マウント設定
自動的にNFSマウントされるように/etc/fstabファイルに追記します。

```shell-session
192.168.1.250:/export /mnt/nfs  nfs rw 0 0
```

オプションを指定する場合

```shell-session
192.168.1.250:/export /mnt/nfs  nfs vers=3,rsize=131072,wsize=131072,_netdev  0 0
```

#上位の容量のプランへの移行

NFSアプライアンスを使用していくとデータが増えてDiskが足りなくなってくることがあります。NFSアプライアンスは同容量及び上位の容量のプランへデータを移行することが可能です。作成後にIPアドレスを変更することはできませんが、この機能を利用することでIPアドレスを変更することも可能です。ただし、いくつか考慮する必要があるので、そちらを含めて手順を説明いたします。

##移行手順

![mg_nfs01.png](https://qiita-image-store.s3.amazonaws.com/0/177215/cedd39d4-d0ca-8aed-046a-7dfa340802f3.png)

対象のNFSアプライアンスを選択し、詳細をクリックします。

![mg_nfs03.png](https://qiita-image-store.s3.amazonaws.com/0/177215/660358c9-f135-2f97-b58e-015cda8fb1a7.png)

同じIPアドレスで以降したい場合や、移行元のNFSアプライアンスは移行処理中でもアクセスは可能なので、その間にデータの差分を生じさせたくない場合は電源操作をクリックしてNFSアプライアンスを停止させてください。その際は必ず各クライアントからアンマウントを行ってください。

![mg_nfs02.png](https://qiita-image-store.s3.amazonaws.com/0/177215/38f3a1a3-f596-3410-ba2a-bf62c174dd3f.png)

右上のクローンをクリックします。

![mg_nfs04.png](https://qiita-image-store.s3.amazonaws.com/0/177215/fe3e6e6e-a6bf-dee7-5b13-12e0a2ad26f4.png)

NFSアプライアンスの新規作成と同等の画面が表示されます。新規作成時と異なる点はクローン元アプライアンスが指定されているのとプランが現行よりサイズが小さいものが選択できなくなっている点です。
以降は新規作成時と同じですので、必要なパラメータを入力して作成をクリックしてください。

有効状態が利用可能になれば、アプライアンスのデプロイは完了しています。
ただし、デプロイ完了後にDiskのクローンが行われている為、容量によってはマウントできる状態なるまで10分～30分程かかる場合があります。

#終わりに
いかがでしょうか。このように簡単にさくらのクラウド上でNFSでファイル共有ができるようになりました。ブリッジ接続を利用することで他のリージョンや専用サーバやさくらのVPSからも使用することが可能です。皆さん一度試してみてはいかがでしょうか。