NSD PROJECT3 DAY03
1 案例1、初始化环境
1.1 问题
本案例要求在华为云上购买云主机,并更新相关配置文件。
- 购买华为云服务器
- 更新ecs-proxy上环境配置
- 分发实验所需软件包
1.2 方案
准备如表-1所示的实验环境,配置主机名称、IP地址。
表-1 主机列表
![](index.files/table001.png)
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一、购买华为云服务器
1)、购买华为云服务器(redis集群)
基础配置:无 网络配置:手动分配IP地址 192.168.1.32 高级配置:云服务器名称 redis 确认配置:5台
2)、购买华为云服务器(ceph集群)
基础配置:新增两块大小为20G的数据盘(通用型SSD),如图-1。 网络配置:手动分配IP地址 192.168.1.23 高级配置:云服务器名称 ceph 确认配置:3台
![](index.files/image001.png)
步骤二、更新ecs-proxy云主机配置文件
1)、更新/etc/hosts
[root@ecs-proxy ~]# cat >> /etc/hosts <<EOF 192.168.1.32 redis-0002 192.168.1.33 redis-0003 192.168.1.34 redis-0004 192.168.1.35 redis-0005 192.168.1.36 redis-0006 192.168.1.23 ceph-0001 192.168.1.24 ceph-0002 192.168.1.25 ceph-0003 EOF
2)、更新/root/ansible/hosts配置文件
[root@ecs-proxy ~]# cat >> /root/ansible/hosts <<EOF [ceph] 192.168.1.2[3:5] EOF [root@ecs-proxy ~]# sed -i '/redis/a 192.168.1.3[2:6]' /root/ansible/hosts [root@ecs-proxy ~]# cd /root/ansible
注意:一定要将最新的/etc/hosts配置文件更新到所有的云主机上。
[root@ecs-proxy ansible]# ansible all -m copy -a ‘src=/etc/hosts dest=/etc’
步骤三、分发实验所需软件包
1)、将redis所需软件包分发给redis集群的6台主机
[root@ecs-proxy ansible]# ansible redis -m copy -a ‘src=/root/project3/DAY03/redis-4.0.8.tar.gz dest=/root’
[root@ecs-proxy ansible]# scp /root/project3/DAY03/redis-3.2.1.gem root@192.168.1.31:/root
2)、更新自定义YUM仓库
[root@ecs-proxy ~]# mkdir /var/ftp/ceph
[root@ecs-proxy ~]# echo ‘/root/project3/DAY03/ceph10.iso /var/ftp/ceph iso9660 defaults 0 0’ >> /etc/fstab
[root@ecs-proxy ~]# mount -a
配置ceph软件包的YUM配置文件
[root@ecs-proxy ~]# cat >> /root/ceph.repo << EOF
[mon]
name=mon
baseurl=ftp://192.168.1.252/ceph/MON
gpgcheck=0
[osd]
name=osd
baseurl=ftp://192.168.1.252/ceph/OSD
gpgcheck=0
[tools]
name=tools
baseurl=ftp://192.168.1.252/ceph/Tools
gpgcheck=0
EOF
将最新的ceph的YUM配置文件更新到3台ceph云主机上
[root@ecs-proxy ansible]# ansible ceph -m copy -a ‘src=/root/ceph.repo dest=/etc/yum.repos.d/’
2 案例2、部署redis集群
2.1 问题
本案例要求再华为云主机上部署redis集群。该集群包括3个主节点,每个主节点都有一个从节点。
- 部署redis服务
- 部署管理主机
- 创建集群
- 查看集群
- 访问集群
2.2 方案
Redis 集群引入了哈希槽的概念,Redis 集群有16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一、部署redis服务
1)、初始化redis服务
(因redis-0001在第一天项目中已经部署过,后续的操作在redis-0002~redis-0006这五台主机上)
[root@ecs-proxy ansible]# ansible redis -m shell -a "tar -xf /root/redis-4.0.8.tar.gz" [root@ecs-proxy ansible]# ansible redis -m shell -a "cd /root/redis-4.0.8;make && make install"
2)、修改配置文件,启动集群功能。
A)启动redis-0001的集群功能。(在DAY01的实验中,该服务器部分操作已部署过。)
[root@redis-0001 ~]# sed -i "/cluster-enabled/ s/# //" /etc/redis/6379.conf #启用集群功能 [root@redis-0001 ~]# sed -i "/cluster-config-file/ s/# //" /etc/redis/6379.conf #存储集群信息的配置文件 [root@redis-0001 ~]# sed -i "/cluster-node-timeout/ s/# //" /etc/redis/6379.conf #集群节点通信超时时间 [root@redis-0001 ~]# /etc/init.d/redis_6379 restart Starting Redis server.. [root@redis-0001 ~]# netstat -utnlp | grep redis-server tcp 0 0 192.168.1.31:16379 0.0.0.0:* LISTEN 2039/redis-server 1 tcp 0 0 192.168.1.31:6379 0.0.0.0:* LISTEN 2039/redis-server 1 #6379用于客户端连接的端口 #16379用于集群间通信的端口
B)启动redis-0002的集群功能。
[root@redis-0002 ~]# /root/redis-4.0.8/utils/install_server.sh #【按照默认配置,一路回车即可。】 [root@redis-0002 ~]# sed -i "/^bind/ s/127.0.0.1/192.168.1.32/" /etc/redis/6379.conf #修改绑定IP [root@redis-0002 ~]# sed -i "/cluster-enabled/ s/# //" /etc/redis/6379.conf [root@redis-0002 ~]# sed -i "/cluster-config-file/ s/# //" /etc/redis/6379.conf [root@redis-0002 ~]# sed -i "/cluster-node-timeout/ s/# //" /etc/redis/6379.con