このガイドでは、OpenSUSE12.2でNFSサーバーとNFSクライアントを設定する方法について説明します。 NFSはNetworkFile Systemの略です;クライアントはNFSを介して、ローカルハードディスク上にあるかのようにNFSサーバー上のリモート共有にアクセス(読み取り、書き込み)できます。
1予備メモ
ここでは2つのOpenSUSEシステムを使用しています:
- NFSサーバー:server.example.com、IPアドレス:192.168.0.100
- NFSクライアント:client.example.com、IPアドレス:192.168.0.101
2NFSのインストール
サーバー:
NFSサーバーで実行します:
zypper install nfs-kernel-server
次に、NFSサーバーのシステム起動リンクを作成して起動します。
systemctl enable rpcbind.service
systemctl start rpcbind.service
systemctl enable nfsserver.service
systemctl start nfsserver.service
クライアント:
クライアントには、次のようにNFSをインストールできます。
zypper install nfs-client
サーバー:
クライアントがディレクトリ/homeと/var/nfsにアクセスできるようにしたいのですが。したがって、サーバー上でそれらを「エクスポート」する必要があります。
クライアントがNFS共有にアクセスする場合、これは通常、ユーザーが誰もいないときに発生します。通常、/ homeディレクトリは誰も所有していません(所有権をnobodyに変更することはお勧めしません!)。また、読み取りと書き込みが必要なためです。 / homeで、アクセスはrootとして行う必要があることをNFSに通知します(/ home共有が読み取り専用の場合、これは必要ありません)。 / var / nfsディレクトリが存在しないため、ディレクトリを作成して所有権をnobodyおよびnogroupに変更できます。
mkdir /var/nfs
chown nobody:nogroup /var/nfs
次に、NFS共有を「エクスポート」する/ etc/exportsを変更する必要があります。 /homeと/var/ nfsをNFS共有として指定し、ルートとして/ homeにアクセスするようにNFSに指示します(/ etc / exports、その形式、および使用可能なオプションの詳細については、
を参照してください。man 5 exports
)
vi /etc/exports
# See the exports(5) manpage for a description of the syntax of this file. # This file contains a list of all directories that are to be exported to # other computers via NFS (Network File System). # This file used by rpc.nfsd and rpc.mountd. See their manpages for details # on how make changes in this file effective. /home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
(no_root_squashオプションを使用すると、/ homeがrootとしてアクセスされます。)
/ etc / exportsを変更するときはいつでも、実行する必要があります
exportfs -a
その後、変更を有効にします。
4クライアントへのNFS共有のマウント
クライアント:
まず、NFS共有をマウントするディレクトリを作成します。例:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
その後、次のようにマウントできます:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
の出力に2つのNFS共有が表示されます。
df -h
client:~ # df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 12G 3.4G 7.5G 31% /
devtmpfs 997M 4.0K 997M 1% /dev
tmpfs 1004M 96K 1004M 1% /dev/shm
tmpfs 1004M 580K 1003M 1% /run
/dev/sda2 12G 3.4G 7.5G 31% /
tmpfs 1004M 0 1004M 0% /sys/fs/cgroup
tmpfs 1004M 580K 1003M 1% /var/lock
tmpfs 1004M 580K 1003M 1% /var/run
tmpfs 1004M 0 1004M 0% /media
/dev/sda3 17G 387M 16G 3% /home
192.168.0.100:/home/ 12G 1.5G 9.6G 13% /mnt/nfs/home
192.168.0.100:/var/nfs 12G 1.5G 9.6G 13% /mnt/nfs/var/nfs
client:~ #
および
mount
client:~ # mount
devtmpfs on /dev type devtmpfs (rw,relatime,size=1020060k,nr_inodes=255015,mode=755)
tmpfs on /dev/shm type tmpfs (rw,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
/dev/sda2 on / type ext4 (rw,relatime,data=ordered)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=24,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
tmpfs on /var/lock type tmpfs (rw,nosuid,nodev,relatime,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,relatime)
tmpfs on /var/run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs on /media type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=755)
/dev/sda3 on /home type ext4 (rw,relatime,data=ordered)
none on /proc/fs/vmblock/mountPoint type vmblock (rw,relatime)
gvfs-fuse-daemon on /run/user/falko/gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=1000,group_id=100)
192.168.0.100:/home/ on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.15,local_lock=none,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.15,local_lock=none,addr=192.168.0.100)
client:~ #
5テスト
クライアントで、NFS共有にテストファイルを作成できるようになりました。
クライアント:
touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt
次に、サーバーに移動して、両方のテストファイルが表示されるかどうかを確認します。
サーバー:
ls -l /home/
server:~ # ls -l /home/
total 4
drwxr-xr-x 6 administrator users 4096 Jul 19 17:26 administrator
-rw-r--r-- 1 root root 0 Sep 14 20:47 test.txt
server:~ #
ls -l /var/nfs
server:~ # ls -l /var/nfs
total 0
-rw-r--r-- 1 nobody nogroup 0 Sep 14 20:47 test.txt
server:~ #
(テストファイルの所有権が異なることに注意してください。/homeNFS共有はrootとしてアクセスされるため、/ home / test.txtはrootによって所有されます。/var/nfs共有はnobodyとしてアクセスされるため、/ var / nfs / test.txtは誰も所有していません。)
6起動時にNFS共有をマウントする
クライアントにNFS共有を手動でマウントする代わりに、/ etc / fstabを変更して、クライアントの起動時にNFS共有が自動的にマウントされるようにすることができます。
クライアント:
/ etc / fstabを開き、次の行を追加します。
vi /etc/fstab
[...] 192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
man nfs
変更した/etc/ fstabが機能しているかどうかをテストするには、クライアントを再起動します。
reboot
再起動後、
の出力に2つのNFS共有が表示されます。df -h
and
mount
7つのリンク
- Linux NFS:http://nfs.sourceforge.net/
- OpenSUSE:http://www.opensuse.org/