さくらのクラウド アプライアンス/グローバルリソースを使ってみよう ~NFS編~

こんにちは。さくらインターネットの大井です。

前回はさくらのクラウドで利用できるアプライアンス/グローバルリソース機能それぞれの概要について解説しました。今回からはそれらの機能を既存の環境に組み込んで利用するなど、より実践的な活用方法について構築・設定例を挙げながら解説していきたいと思います。

今回はコントロールパネルから操作するだけでNFSサーバが作成できるアプライアンス「NFS」について取り上げます。

NFSとは

NFSとは「Network File System」の略で、その名の通りSCSIなどPC筐体内の専用バスやSAN(Storage Area Network)などのストレージ専用のネットワークを使用せず、TCP/IPなど汎用・共用のネットワークを通じて低コストにホスト間ファイル共有を実現するプロトコルです。

LinuxなどUNIX系の基盤を持つOSでは標準でNFSの機能が使用できたり、そうでなくともWindowsをはじめとした多くのOSではいくつかパッケージをインストールし簡単な設定を行うだけでサーバやクライアントとして機能させることができます。NFSクライアント側はネットワーク越しに接続されたNFSサーバをあたかも直接接続されたディスクのようにファイルシステム内にマウントできるため、ホストに直接接続されたOSブートディスクなどと同様の感覚でNFSサーバ上のファイルを読み書きすることができます。

このように、クラウド環境でよく使用されるUNIX系OSとの親和性の高さ、ファイル共有の標準プロトコルとして長い歴史の中で改良されてきた安定性の高さ、ファイルシステムにマウントされる形式なので利用者やプログラムに特別な手順が不要で使用できるなど多くのメリットがあります。もちろんサーバは複数のクライアントから同時接続する事が可能なため、複数のサーバで共有するデータを保管する用途にも適しています。

ただし、NFSは組織内のローカルネットワークでの利用を主眼として開発されてきた経緯があり、認証や暗号化、アクセス制御機構などのセキュリティ機能はあくまで簡易的なものに留まります。そのため、安全性の面からも世界中からアクセス可能なインターネットのグローバル環境に直接接続する事は想定されていない実装であることに注意してください。このため、さくらのクラウドにおいてもNFSクライアントはローカル側ネットワークのスイッチ配下への接続のみに制限しています。

「NFS」アプライアンスを作ってみよう

さくらのクラウドでは、NFSサーバとなる仮想サーバとそれに接続されたNFSデータ格納領域となるディスクを一体化させた「NFSアプライアンス」として提供しています。そのため、コントロールパネルから作成するだけですぐにクライアントからNFSマウント可能なNFSサーバが完成します。それでは実際にNFSアプライアンスを作成する手順を解説してみましょう。

テスト環境

NFSアプライアンスはサーバや他のアプライアンスと同様にコントロールパネルの操作ですぐに作成することができますが、単体で動作するものではなくクライアントとなるホストがあって初めてNFSサーバとして機能するものです。そのため今回のNFSアプライアンス解説用に以下の環境を準備しました。

グローバル環境へアクセスできるルータ+スイッチに3台のホストがぶら下がり、さらにそれぞれがローカルネットワークとなるスイッチに接続されています。ここで、ローカルネットワーク側のスイッチにNFSアプライアンスを接続すればそれぞれのホストでデータが共有できるNFSサーバとして利用できるようになるはずです。

もちろんすでに構築済みの環境にNFSアプライアンスを設置したい!という場合も

  • 直接インターネットに接続されていないローカルネットワーク用スイッチが作成されていること
  • ローカルネットワーク用スイッチにNFSクライアントとしたいホストが接続されていること

の条件を満たしていれば、新規のリソース作成や構成変更など大きな手を加えることなくNFSアプライアンスを設置することが可能です。

NFSアプライアンスの作成

それではいよいよNFSアプライアンスを作成していきます。まずは「マップ」機能を使用してNFSアプライアンス追加前の構成を確認してみましょう。

サーバが3台あり、それぞれがグローバルネットワークとローカルネットワークに接続されています。NFSアプライアンスはローカルネットワークに接続するため、各サーバのローカルネットワーク接続環境の諸元を以下に記載します。

サーバ名 ローカル側IPアドレス
Webサーバ 192.168.1.11
Mailサーバ 192.168.1.12
DBサーバ 192.168.1.13

※サブネットマスクは/24(255.255.255.0)

追加したいNFSアプライアンスのIPアドレスはいずれのサーバにも割り当てられていない「192.168.1.14」を使用する事にします。

それでは早速NFSアプライアンスを作成・ローカルネットワークに接続してみましょう。コントロールパネルにログインし、左側メニュー「アプライアンス」の配下に「NFS」があるのでこちらをクリックします。

作成済みNFSの一覧が表示されますが、もしひとつも無ければ上記のように何も表示されない状態です。ここで右上の「追加」ボタンをクリックし、NFSアプライアンスの新規追加画面を表示します。

各フォームの入力項目は以下の通りです。

接続先スイッチ 各サーバが接続されているローカルネットワークスイッチを選択
クローン元アプライアンス 選択なし
※すでに作成済みのNFSアプライアンスのディスク内容を丸ごとクローンして作成する機能です
プラン 100GB
※必要に応じてより大きいディスク領域を選択可能です
IPv4アドレス 192.16.1.14
ネットマスク 24
ゲートウェイ (空欄)
名前 NFSサーバ#01
※NFSアプライアンス一覧画面やマップに表示される名前となります

必要に応じて説明やタグを入力し「作成」ボタンをクリックします。NFSアプライアンス一覧画面では有効状態が「コピー中」のステータスとなり、NFSアプライアンス作成作業が開始されます。完了後は「利用可能」状態となり、これで実際に同一ネットワークのホストからNFSマウントが行える状態となります。

※NFSアプライアンス作成時に選択したプラン(ディスク容量)により作成時間が5~20分程度かかる場合があります

NFSアプライアンスに接続してみよう

NFSアプライアンスの作成が完了したら、いよいよ各ホストからNFSアプライアンスをマウントしてみましょう。

CentOS7系など、最近のLinuxでは標準でNFSクライアントとなるツールが導入されておらず、NFSマウントするために最初にパッケージのインストールが必要です。CentOS7の場合、以下のようにnfs-utilsパッケージをyumで導入します。

[root@web01 ~]# yum install nfs-utils

これでNFSアプライアンスのNFS公開領域をマウントする準備が整いました。マウントは通常のディスクの場合と同じく"mount"コマンドを使用します。今回はマウント前にあらかじめ「/nfs」ディレクトリを作成し、そこをマウントポイントとしました。また、NFSアプライアンス側のマウントポイントは/exportです。よって、マウントのコマンドは以下のようになります。

[root@web01 ~]# mkdir /nfs
[root@web01 ~]# mount 192.168.1.14:/export /nfs

コマンド実行後、正しくマウントが行えているかdfコマンドで確認してみましょう。

[root@web01 ~]# df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/vda3             16446312 2385044  13206144  16% /
devtmpfs                493716       0    493716   0% /dev
tmpfs                   508100       0    508100   0% /dev/shm
tmpfs                   508100   51188    456912  11% /run
tmpfs                   508100       0    508100   0% /sys/fs/cgroup
tmpfs                   101620       0    101620   0% /run/user/0
192.168.1.14:/export 103080320   61056  97776384   1% /nfs

出力結果の最下行より、問題なくマウントされていることが確認できます。同様に他の2台のサーバからもマウントを行うことで、1台のNFSアプライアンスのディスク領域を共有することが可能です。

また、/etc/fstabファイルに

192.168.1.14:/export /mnt nfs defaults 0 0

のように記述することで、他のディスクと同様にブートするごとに自動的にNFSマウントすることができます。

最後に

いかがでしたでしょうか。サーバとディスク、そして設定済みのNFSサーバというソフトウェアがひととおりパッケージングされ、コントロールパネルからの作成操作だけですぐに使用できるのは非常に便利だったかと思います。

さて、今回はさくらのクラウド内に作成された複数のサーバでNFSアプライアンス内のデータを共用する例を取り上げました。次回は「VPCルータ」について解説予定ですが、その中で「さくらのクラウドを自社ローカルネットワークの拡張領域として使う」例で、NFSアプライアンスをまるで自社ローカル内のNFSサーバとして使う応用例を取り上げたいと思います。

※「NFSアプライアンス」の詳しい使い方、仕様などについてはさくらのクラウドマニュアル「NFSアプライアンス」もあわせて参照ください。