使用工具 | VMware 17.0 Xshell 7.0 CentOS 7.0 |
---|---|
参考资料 |
-
明白为什么要使用存储服务
● 举个例子, 用现有一个户现在需要访问淘宝网站, 但是因为淘宝每日的访问量非常大, 如果让用户都去访问一台服务器的话会对服务器造成非常大的负担, 很容易导致网站崩掉 ;
● 而解决这一问题的办法就是使用网站服务器集群, 通过负载均衡对用户访问请求进行分流, 如我们通过淘宝的域名www.taobao.com
去访问淘宝网站, 但是淘宝的Web的服务器有六台, 公网IP地址分别是10.0.0.1~10.0.0.6
, 内网Ip地址分别是172.1.16.1~172.1.16.6
, 它们六个公网IP地址都映射的是www.taobao.com
;
● 即我们第一次请求访问淘宝可能访问的是淘宝Web服务器1, 对应的公网IP地址是10.0.0.1, 而刷新后可能访问的就是 淘宝Web服务器2, 对应的公网IP地址是10.0.0.2 ;
● 而如果我们不挂载存储服务器 (假设存储服务器的内网地址为172.1.16.7
), 我们在淘宝Web服务器1上上传的用户头像图片只存储在淘宝Web服务器1上, 刷新后如果给我们分配的是淘宝Web服务器2的话我们刚刚上传的用户头像图片就找不到了 ;
● 而挂载了存储服务器后, 我们上传的用户头像图片通过任意一个Web服务器最终都会通过内网存储到存储服务器当中, 当我们下一次被分配到另一个Web服务器时仍旧能够访问到我们上传的用户头像图片
-
存储服务 NFS 如何实现
-
确认是否已完成模板虚拟机配置和克隆
-
是否已完成模板虚拟机的创建? → 参考教程 : Linux环境-Centos7运维模板虚拟机安装与配置
-
是否已完成模板虚拟机的克隆? → 参考教程 : Linux环境-Centos7运维模板虚拟机克隆
-
-
服务端 (10.0.0.31) 安装所需服务
# 安装 rpcbind 服务 和 nfs-utils (utils表示工具集合) yum install -y rpcbind nfs-utils # 启动 rpcbind (必须先启动 rpcbind, 这个有顺序的要求) 并设置开机自动 systemctl start rpcbind systemctl enable rpcbind # 查询 rpcbind 信息 rpcinfo -p # 启动 nfs 并设置开机自动 systemctl start nfs systemctl enable nfs # 再次查询 rpcbind 信息 rpcinfo -p
-
服务端 (10.0.0.31) 编写 NFS 服务配置文件
# 编写 exports 配置文件 (一行为一个配置) vim /etc/exports ---------------------------------------- # 将 /data/ 目录共享给 172.16.1.0/24 网段, 开放读写权限 /data/ 172.16.1.0/24(rw) ---------------------------------------- :wq # 重新加载nfs服务配置文件(使用reload不会断开已有的连接, restart在nfss中会导致客服端一段时间的夯住) systemctl reload nfs # 创建/data/目录并查看 mkdir -p /data/ ll -d /data # 查看运行服务nfs对应的默认用户nfsnobody id nfsnobody # 修改/data/目录的所属用户和所属用户组 (-R选项表示连同子目录中的所有文件都更改所有者) chown -R nfsnobody.nfsnobody /data/ ll -d /data
-
服务端 (10.0.0.31) 本地挂载测试
# 查看磁盘空间使用情况 df -h # 将服务端/data/目录临时挂载到/mnt/目录下并查看 # (挂载后在mnt目录下写入文件就相当于在/data/目录中写) mount -t nfs 172.16.1.31:/data/ /mnt/ df -h /mnt/ # 测试是否挂载成功 (在/mnt/目录中创建文件,如果/data/中也有即为挂载成功) touch /mnt/xuxouy-{1..5}.txt ll /mnt/ ll /data/
-
客户端 (10.0.0.7) 挂载配置
# 安装 rpcbind 服务 和 nfs-utils (utils表示工具集合), 但不用启动 yum install -y rpcbind nfs-utils # 将服务端/data/目录临时挂载到客户端/mnt/目录下并查看 mount -t nfs 172.16.1.31:/data/ /mnt/ df -h /mnt/ # 测试是否挂载成功 (在/mnt/目录中创建文件,如果/data/中也有即为挂载成功) touch /mnt/xuxouy007-web01-{1..3}.txt ll /mnt/ ll /data/
注意点 : 挂载时的注意事项
● 客户端挂载服务端的存储服务后, 在客户端上将文件删除, 服务端上的文件也会被删除
● 如果需要取消挂载, 使用命令umount -lf /mnt
(-lf 表示强制)