アクセラと+αな生活
アクセラとα350と共に過ごす気まぐれ日記です。
Firefox ブラウザ無料ダウンロード
2017年07月
≪06月  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31    08月≫
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Ubuntu 9.10 で NFS を使ってみる。
ネットワーク経由のファイル・ディレクトリ共有といえば、「samba」が有名ですね。

「samba」は主に Windows と Unix 系 OS での共有で利用されます。

Unix 系 OS での共有あれば、NFS(Network File System)があります。
個人的なイメージですが、「NFS」が料亭などの具は鳥だけの本格的な「鳥鍋」、「samba」が具沢山でおうちでも簡単に作れる「寄せ鍋」って感じww


同じ共有であっても、「samba」と「NFS」は全くの別物。。。
「samba」は Windows との共有、「NFS」は Unix 同士の共有で一般的に使用されます。
(まあ、「samba」では Unix 同士の共有もできちゃうんですけどね。。。)


では、NFS を使って、共有を行ってみましょう。


※NFS は高度な設定です。
 不明点などはシステム管理者に確認して下さい。



【環境】
今回は、「Ubuntu 9.10」(以下、Ubuntu 君)のインストールされたマシンと「Vinelinux 5.0」(以下、Vine ちゃん)のインストールされたマシンを利用して、NFS 環境、動作検証を行います。

「Ubuntu 君」を「NFS サーバ」(ファイル・ディレクトリ共有提供する側)とし、「Vine ちゃん」を「NFS クライアント(Ubuntu 君の共有ディレクトリへアクセスする側)で検証します。


【NFS インストール(Ubuntu 君での作業)】
NFS 関連はパッケージ化されているので、「apt」でインストールします。

$ sudo apt-get update

~ 略 ~

$ sudo apt-get install nfs-kernel-server nfs-common
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
libgssglue1 libnfsidmap2 librpcsecgss3 portmap
以下のパッケージが新たにインストールされます:
libgssglue1 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 0 個。
490kB のアーカイブを取得する必要があります。
この操作後に追加で 1,528kB のディスク容量が消費されます。
続行しますか [Y/n]? y
取得:1 http://jp.archive.ubuntu.com karmic/main libgssglue1 0.1-3 [23.6kB]
取得:2 http://jp.archive.ubuntu.com karmic/main libnfsidmap2 0.21-2 [28.4kB]
取得:3 http://jp.archive.ubuntu.com karmic/main librpcsecgss3 0.18-1 [32.4kB]
取得:4 http://jp.archive.ubuntu.com karmic/main portmap 6.0-10ubuntu2 [37.4kB]
取得:5 http://jp.archive.ubuntu.com karmic/main nfs-common 1:1.2.0-2ubuntu8 [211kB]
取得:6 http://jp.archive.ubuntu.com karmic/main nfs-kernel-server 1:1.2.0-2ubuntu8 [158kB]
490kB を 1s で取得しました (261kB/s)
パッケージを事前設定しています ...
未選択パッケージ libgssglue1 を選択しています。
(データベースを読み込んでいます ... 現在 260757 個のファイルとディレクトリがインストールされています。)
(.../libgssglue1_0.1-3_i386.deb から) libgssglue1 を展開しています...
未選択パッケージ libnfsidmap2 を選択しています。
(.../libnfsidmap2_0.21-2_i386.deb から) libnfsidmap2 を展開しています...
未選択パッケージ librpcsecgss3 を選択しています。
(.../librpcsecgss3_0.18-1_i386.deb から) librpcsecgss3 を展開しています...
未選択パッケージ portmap を選択しています。
(.../portmap_6.0-10ubuntu2_i386.deb から) portmap を展開しています...
未選択パッケージ nfs-common を選択しています。
(.../nfs-common_1%3a1.2.0-2ubuntu8_i386.deb から) nfs-common を展開しています...
未選択パッケージ nfs-kernel-server を選択しています。
(.../nfs-kernel-server_1%3a1.2.0-2ubuntu8_i386.deb から) nfs-kernel-server を展開しています...
man-db のトリガを処理しています ...
ureadahead のトリガを処理しています ...
ureadahead will be reprofiled on next reboot
libgssglue1 (0.1-3) を設定しています ...

libnfsidmap2 (0.21-2) を設定しています ...

librpcsecgss3 (0.18-1) を設定しています ...

portmap (6.0-10ubuntu2) を設定しています ...
portmap start/running, process 4530

nfs-common (1:1.2.0-2ubuntu8) を設定しています ...

Creating config file /etc/idmapd.conf with new version

Creating config file /etc/default/nfs-common with new version
システムユーザ `statd' (UID 118) を追加しています...
新しいユーザ `statd' (UID 118) をグループ `nogroup' に追加しています...
ホームディレクトリ `/var/lib/nfs' は作成しませんでした.
statd start/running, process 4753
gssd stop/pre-start, process 4778
idmapd stop/pre-start, process 4806

nfs-kernel-server (1:1.2.0-2ubuntu8) を設定しています ...

Creating config file /etc/exports with new version

Creating config file /etc/default/nfs-kernel-server with new version
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]

libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place

これでインストールは完了です。
特にエラーなどは発生していませんね。

「nfs-kernel-server」がサービスの本体になります。
「Starting NFS kernel daemon [ OK ]」と表示されているので、サービス起動は行ってくれているようです。
念のため、確認しておきます。

$ sudo service nfs-kernel-server status
nfsd running


もし、ステータスが「running」で無い場合、何かしらのエラーで停止しているかもしれません。
エラーが発生しているのであれば、エラーの原因を取り除いて、「nfs-kernel-server」の起動して下さい。
(エラー原因はさまざまなことが考えられますので、エラーに関しての説明、対応方法は割愛します)

「nfs-kernel-server」の起動
(すでに起動している場合は不要)

$ sudo /etc/init.d/nfs-kernel-server start
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]




毎回毎回、起動を手動で行うのは面倒です。
OS 起動時に自動起動してくれるのか、確認しておきます。

$ sudo chkconfig --list nfs-kernel-server
($ sudo sysv-rc-conf --list nfs-kernel-server)

nfs-kernel-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off


ランレベル2 ~ 5 で「on」となっているので、自動起動も設定されてますねww


【共有設定(Ubuntu 君での作業)】
「NFS」サーバの共有設定は「/etc/exports」(以下、exports)で記載します。

今回は、Ubuntu 君に「/var/nfs_share」というディレクトリを作成し、このディレクトリを共有する設定にします。
「exports」は特定の NFS クライアントからの接続のみ許可したり、読み取り専用にしたりと、いろいろ制限をかけることができます。


「exports」の基本的な書式は

<共有するディレクトリ> <NFS クライアント><オプション>

となります。

<共有するディレクトリ>は文字通り、NFSサーバ側の共有で使用するディレクトリ(つまり、Ubuntu 君のディレクトリ)をフルパスで指定します。

<NFS クライアント>は接続を許可するクライアントなどを指定します。
ホスト名を直接指定してもできますし、192.168.1.0/255.255.255.0 などのように特定の IP とサブネットを利用してのマスク指定もできます。
(192.168.1.0/255.255.255.0 であれば、サブネットが「255.255.255.0」で IP アドレスが「192.168.1.*」、つまり、第4オクテットが「*」(第4オクテットは制限なしの全て)のクライアントが利用可能という意味になります)

また、クライアントごとの設定もできます。
例えば
「/var/nfs_share ホスト1(rw) ホスト2(ro)
とすれば、ホスト1 では読み書き(rw)可能、ホスト2では読み取り専用(ro)というような設定も行えます。

<オプション>には読み取り専用、読み書き可能などの共有設定を指定します。

今回は「Vine ちゃん」のみ接続可能で、読み書きができる設定にします。
他の設定内容は割愛しますので、「man exports」で確認して下さい。
(この設定内容を説明しだすと、とても長くなりそうなので。。。)

では、設定してみましょう。

共有ディレクトリの作成
$ sudo mkdir /var/nfs_share

「exports」のバックアップ
$ sudo cp -p /etc/exports /etc/exports_backup

vi で「exports」の編集
$ sudo vi /etc/exports

(下記内容を追加)
/var/nfs_share <Vine ちゃんのホスト名>(rw,subtree_check)
vi で「exports」は上書き保存

「exports」の設定内容を反映
$ sudo exportfs -r
※「sudo /etc/init.d/nfs-kernel-server restart」(NFS サーバの再起動)でも設定は反映されます。



これで、NFS サーバ側の共有設定は完了で、その反映もしているはずです。
共有できるのかを「Vine ちゃん」から確認します。


【共有の確認(Vine ちゃんでの作業)】
共有の仕方は、NFS サーバ側(Ubuntu 君)の共有ディレクトリを NFS クライアント側(Vine ちゃん)でマウントするだけです。
ですので、ここからは「Vine ちゃん」での作業になります。

「Vine ちゃん」(というか、一般的な Unix 系 OS)では「root」権限が必要な場合に「sudo」などは使いません。
「root」権限が必要であれば、「su」で root へスイッチして作業します、あしからず。
(Solaris や HP-UX で「sudo」なんか使ったことないしね。。。)

「Vine ちゃん」には「/mnt/ubuntu_test」というディレクトリを作成し、このディレクトリへ Ubuntu 君の共有ディレクトリをマウントすることにします。


root へスイッチ
$ su -
パスワード:←root ユーザのパスワード

マウント用のディレクトリ作成
# mkdir /mnt/ubuntu_test

共有ディレクトリのマウント
# mount -t nfs <Ubuntu 君のホスト名>:/var/nfs_share /mnt/ubuntu_test

マウントしたディレクトリへ移動
# cd /mnt/ubuntu_test/

※あとは、共有ディレクトリでファイルを作成したりなど動作検証

アンマウント(NFS の切り離し)
# cd /
# umount /mnt/ubuntu_test
※当たり前ですが、マウントしたディレクトリでそのディレクトリをアンマウントできませんので、
「/」ルートへ移動して、アンマウントしてます。




これで、「Vine ちゃん」から、「Ubuntu 君」の共有ディレクトリへアクセスできました♪

マウントは root 権限が必要なので、「root」で実行してますが、この設定ではアクセスは一般ユーザでも可能です。







「exports」の記述方法やオプションの指定がちょっと難しいですね。
とはいえ、「man」(マニュアル)を見れば、オプションなんかも、何となく分かることでしょう。

分からない内容は。。。。
「百聞は一見にしかず」で、オプションを設定して、実際に動作を検証すればいいだけですww



コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by .
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。