在OpenSUSE 12.2上设置NFS服务器和客户端

本指南介绍了如何在OpenSUSE 12.2上设置NFS服务器和NFS客户机。 NFS代表网络文件系统 ; 通过NFS,客户端可以访问(读取,写入)NFS服务器上的远程共享,就像它在本地硬盘上一样。

1初步说明

我在这里使用两个OpenSUSE系统:

  • NFS服务器: server.example.com ,IP地址: 192.168.0.100
  • NFS客户端: client.example.com ,IP地址: 192.168.0.101

2安装NFS

服务器:

在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

3在服务器上导出目录

服务器:

我想让目录/ home/ var / nfs可以访问客户端; 因此我们必须在服务器上“导出”它们。

当客户端访问NFS共享时,通常会发生用户nobody 。 通常, / home目录不是由任何人拥有(我不建议将其所有权更改为nobody !),并且因为我们想在/ home上进行读写 ,所以告诉NFS应该以root身份进行访问如果我们的/ home分享是只读的,这是不必要的)。 / var / nfs目录不存在,所以我们可以创建它,并将其所有权更改为nobody和nogroup:

mkdir /var/nfs
chown nobody:nogroup /var/nfs

现在我们必须修改/ etc / exports我们“export”我们的NFS共享。 我们将/ home/ var / nfs指定为NFS共享,并告诉NFS以root身份访问/ home (要了解有关/ 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

您现在应该看到这两个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:~ #

(请注意测试文件的不同所有权: / home NFS共享以root身份访问,因此/home/test.txt由root拥有; / var / nfs共享作为nobody访问,因此/ var / nfs / test.txtnobody拥有。)

6在启动时挂载NFS共享

您可以修改/ etc / fstab ,而不是在客户机上手动安装NFS共享,以便在客户端启动时自动挂载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

代替 rw,sync,hard,intr 您可以使用不同的安装选项。 要了解有关可用选项的更多信息,请查看

man nfs

要测试您的/ etc / fstab是否正常工作,请重新启动客户端:

reboot

重新启动后,您应该在其输出中找到两个NFS共享

df -h
and
mount

7链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏