開発運用

NFSとiSCSIの設定ガイド

NFS(Network File System)およびiSCSI(Internet Small Computer Systems Interface)は、ネットワーク上でファイルの共有やストレージの提供を行うためのプロトコルです。これらは、特にLinuxサーバー環境において、効率的なファイルシステム管理やストレージ管理を行うために使用されます。本記事では、UbuntuでNFSとiSCSIを設定し、ネットワーク上でファイルの共有やストレージの提供を行う方法について、ステップバイステップで詳しく解説します。

NFS(Network File System)の設定

NFSは、LinuxやUnix系のシステムで広く使用されているファイル共有プロトコルです。クライアントとサーバー間で、ファイルシステムをネットワーク越しに共有することができます。以下に、UbuntuでNFSを設定する手順を示します。

1. NFSサーバーのインストール

最初に、NFSサーバーをインストールします。Ubuntuでは、nfs-kernel-serverパッケージを使用します。ターミナルを開き、以下のコマンドを実行します。

bash
sudo apt update sudo apt install nfs-kernel-server

2. 共有するディレクトリの作成

次に、共有するディレクトリを作成します。例えば、/srv/nfsというディレクトリを作成するとします。

bash
sudo mkdir -p /srv/nfs

3. 共有ディレクトリの設定

作成したディレクトリを、他のクライアントに共有できるように設定します。/etc/exportsファイルに設定を追加します。

bash
sudo nano /etc/exports

このファイルに以下の内容を追加します。

bash
/srv/nfs *(rw,sync,no_subtree_check)

*は全てのクライアントを許可することを意味し、rwは読み書き可能、syncは同期モードで書き込む設定です。

4. NFSサーバーの再起動

設定を反映させるために、NFSサーバーを再起動します。

bash
sudo systemctl restart nfs-kernel-server

5. ファイアウォール設定

ファイアウォールを使用している場合、NFSに必要なポートを開放する必要があります。以下のコマンドでポートを開放します。

bash
sudo ufw allow from 192.168.1.0/24 to any port nfs

ここでは、192.168.1.0/24というネットワークからのアクセスを許可しています。必要に応じて、IPアドレスやネットワーク範囲を変更してください。

6. NFSクライアントの設定

NFSサーバーをセットアップしたら、次はNFSクライアント側での設定です。クライアント側にもNFSクライアントツールをインストールします。

bash
sudo apt install nfs-common

次に、NFSサーバーから共有されたディレクトリをマウントします。例えば、サーバーのIPアドレスが192.168.1.100で、共有ディレクトリが/srv/nfsであった場合、以下のコマンドでマウントします。

bash
sudo mount 192.168.1.100:/srv/nfs /mnt

マウントが成功した場合、/mntディレクトリ内でサーバーのファイルにアクセスできるようになります。

7. 自動マウントの設定

システム起動時に自動的にマウントされるようにするためには、/etc/fstabファイルに以下のエントリを追加します。

bash
192.168.1.100:/srv/nfs /mnt nfs defaults 0 0

これで、システムが起動するたびにNFS共有が自動的にマウントされます。

iSCSI(Internet Small Computer Systems Interface)の設定

iSCSIは、ネットワーク越しにストレージを共有するためのプロトコルで、ブロックレベルでのストレージ共有を提供します。NFSがファイルレベルでの共有を行うのに対して、iSCSIはディスクをネットワーク上で直接接続するようなイメージです。以下に、UbuntuでiSCSIターゲットおよびiSCSIイニシエータを設定する手順を示します。

1. iSCSIターゲットのインストール

iSCSIターゲットを設定するには、まずtargetcliというツールをインストールします。

bash
sudo apt update sudo apt install targetcli-fb

2. iSCSIターゲットの作成

ターゲット用のディスクを作成し、そのディスクをiSCSIターゲットとして設定します。まず、ターゲット用のバックエンドディスクを作成します。

bash
sudo dd if=/dev/zero of=/srv/iscsi-disk.img bs=1M count=1024

このコマンドは、1GBの空き領域を持つディスクイメージを作成します。

次に、targetcliを使用してiSCSIターゲットを作成します。

bash
sudo targetcli

以下のコマンドでターゲットを作成します。

bash
/> backstores/block create name=iscsi-disk1 file_or_dev=/srv/iscsi-disk.img /> iscsi/target create iqn.2025-02.com.example:target1 /> iscsi/iqn.2025-02.com.example:target1/tpg1/luns create /backstores/block/iscsi-disk1 /> iscsi/iqn.2025-02.com.example:target1/tpg1/acl add 192.168.1.0/24

ここで、ターゲットのIQN(iSCSI Qualified Name)はiqn.2025-02.com.example:target1とし、クライアントのIPアドレス範囲(192.168.1.0/24)を指定しています。

3. iSCSIターゲットの有効化

ターゲット設定が完了したら、ターゲットを有効化し、iSCSIターゲットサービスを再起動します。

bash
/> exit sudo systemctl restart iscsitarget

4. iSCSIイニシエータの設定

次に、iSCSIターゲットに接続するクライアント側の設定です。iSCSIイニシエータをインストールし、ターゲットに接続します。

bash
sudo apt install open-iscsi

ターゲットのIPアドレスが192.168.1.100の場合、以下のコマンドでターゲットを検出します。

bash
sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.100

ターゲットが見つかったら、以下のコマンドで接続します。

bash
sudo iscsiadm -m node -T iqn.2025-02.com.example:target1 -p 192.168.1.

Back to top button