几个月前用nfs当作kubernetes集群的持久化存储卷,nfs很简单,这几个命令还是要记一下。这里记录下。
一、服务端
/etc/exportsexportfs -rv (全部重新export一次!)
exportfs -au (全部都卸载了)
NFS服务器的共享哪些目录、谁能访问、权限、同步异步方式
通过/etc/exports这个文件进行,设定格式如下:
分享目录 主机名称或者IP(参数1,参数2)
/data/docker 10.168.10.*(rw,sync,no_root_squash)
可以设定的参数主要有以下这些:
rw:可读写的权限;
ro:只读的权限;
no_root_squash:登入到NFS主机的用户如果是root,该用户即拥有root权限;
root_squash:登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者nobody;
all_squash:不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者nobody。
anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。
anongid:同anonuid,但是变成group ID就是了!
sync:资料同步写入存储器中。
async:资料会先暂时存放在内存中,不会直接写入硬盘。
insecure:允许从这台机器过来的非授权访问。
例如可以编辑/etc/exports为:
/data/docker *(rw,no_root_squash)
/home/public 10.168.0.*(rw) *(ro)
/home/test 10.168.0.100(rw)
/home/linux *.the9.com(rw,all_squash,anonuid=40,anongid=40)
设定好后可以使用以下命令启动NFS:
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
/etc/rc.d/init.d/nfs start
systemctl start nfs
systemctl enable nfs
exportfs命令
如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的内容
-r :重新mount /etc/exports中分享出来的目录
-u :umount 目录
-v :在 export 的时候,将详细的信息输出到屏幕上。
具体例子:
[root @test]# exportfs -rv (全部重新export一次!)
exporting 10.168.0.100:/home/test
exporting 10.168.0.*:/home/public
exporting *.the9.com:/home/linux
exporting *:/home/public
exporting *:/data/docker
reexporting 10.168.0.100:/home/test to kernel
具体例子:
[root @test]#exportfs -au (全部都卸载了)
[root @test]# vi /etc/exports
/data/docker 10.168.21.10(rw)
showmout命令对于NFS的操作和查错有很大的帮助
showmout
-a :这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器。
-e :显示指定的NFS SERVER上export出来的目录。
例如:
showmount -e //显示本机上的目录
showmount -e 10.168.0.30 //显示指定nfs服务器的共享目录
二、客户端
showmount
mount -t nfs
df
umount
mount nfs目录的方法:
mount -t nfs hostname(orIP):/directory /mount/point
具体例子:
查看服务器共享目录
# showmount -e 10.168.0.169
Export list for 10.168.0.169:
/data/docker *
挂载共享目录,其中,-t选项用于指定文件系统的类型为nfs。
#mount -t nfs 10.168.0.169:/data/docker /mnt/docker
mount后 df可以看到挂载信息
共享目录使用结束之后,卸载共享目录,运行以下命令:
#umount /mnt/docker