0基础linux运维教程 共享存储之nfs实践及要点

原创
10/14 16:13
阅读数 17

I:环境准备

| 主机 | IP            | 角色      |

| ---- | ------------- | --------- |

| 本地 | 192.168.12.17 | nfs客户端 |

| 远程 | 192.168.12.39 | nfs服务端 |

```bash

本地与远程均执行下述两条命令

setenforce 0

iptables -F

```

II:安装nfs(本地和远程主机都要装)

```bash

yum install nfs-utils -y  #

# 如果是centos7,会自动安装rpcbind

# 如果是centos6,一定要手动下载rpcbind,启动时一定先启动rpcbind,再启动nfs

```

III:服务端配置

```bash

# 1、配置nfs服务,配置文件为 /etc/exports,书写格式如下:

[root@remote ~]# cat /etc/exports

/data 192.168.12.0/24(rw,sync,all_squash)

# 2、创建共享目录

[root@remote ~]# mkdir /data

[root@remote ~]# chown -R nfsnobody.nfsnobody /data/

# nfsnobody该用户在安装nfs之后自动创建,是NFS客户端远程连接过来后使用的用户

# 3、启动nfs,centos7,启动nfs即可,会自动启动rpcbind

[root@remote ~]# systemctl start nfs

```

配置文件/etc/exports格式解析

| 语法    | /data        | 192.168.12.0/24    | (rw,sync,all_squash)      |

| -------- | ------------- | ------------------- | ------------------------- |

| 语法含义 | NFS共享的目录 | NFS允许连接的客户端 | 允许的操作(参数1,参数2) |

```bash

# 1、访问权限

ro:设置输出目录只读。

rw:设置输出目录读写。

# 2、用户映射

root_squash:将root用户映射为来宾账号(nfsnoboydy用户),默认启用。

no_root_squash:不映射客户端root账号为来宾账号,也就意味着客户端root具有服务端root的用户权限。

all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)。

no_all_squash:与all_squash取反(默认设置);

anonuid=501:配置all_squash使用,指定NFS的用户UID,必须存在系统(常用)

anongid=501:配置all_squash使用,指定NFS的用户UID,必须存在系统(常用)

# 3、其他

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)。

insecure:允许客户端从大于1024的tcp/ip端口连接服务器。

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性。

async:将数据先保存在内存缓冲区中,必要时才写入磁盘,默认使用。

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)。

no_wdelay:若有写操作则立即执行,应与sync配合使用。

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置)。

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。

```

IV:客户端

```bash

[root@local /opt]# showmount -e 192.168.12.39

Export list for 192.168.12.39:

/data 192.168.12.0/24

[root@local /opt]# mount -t nfs 192.168.12.39:/data /opt

[root@local /opt]# echo egon666 > /opt/1.txt  # 写入服务端的/data下

# 若写入失败请注意服务端/data目录的权限s

[root@local /opt]# vim /etc/fstab  # 设置开机自动挂载

192.168.12.39:/data /opt nfs defaults 0 0

```

要点强调

NFS是共享存储没错,一般把网站用户上传的文件都放到NFS共享里, 例如BBS  产品的图片,附件,即把网站的img等存放用户上传文件的目录远程挂载到共享存储nfs下。

但网站BBS程序不要放NFS共享里,如果那么做,NFS本身又存在单点故障,一旦挂掉,整个网站都不可用,所以推荐用带集群的存储,比如分布式存储ceph

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部