文档章节

集群cluster

小孩66
 小孩66
发布于 2014/07/31 21:57
字数 3098
阅读 41
收藏 0
点赞 0
评论 0

                         集群cluster

rhel6.5+Cman+RGManager+iSCSI+GFS2+cLVM 可扩展的集群共享存储


物理机192.168.2.4为管理端。selinux为disabled,火墙关闭,时间同步
两个虚拟机192.168.2.46和192.168.2.175为客户端,客户端可以有很多,客户端配置相同,火墙关掉,selinux为enforcing,时间要同步

管理端:
lftp i:/pub/gls> get dvd.repo   //下载yum源,把之前的清空
yum install -y luci
/etc/init.d/luci start     //
启动时这里会有一个链接,等虚拟机配置完毕后打开链接即可,这个网页不需要连外网的
加入两台虚拟机的解析,直接ping两台虚拟机的域名ping通即可

客户端:
lftp i:/pub/gls> get dvd.repo   //下载yum源,把之前的清空
yum install -y ricci  //ricci安装后并不成成目录,加入集群后才会生成目录

passwd ricci   //设置密码为westos,必须设置密码,这是系统版本要求
/etc/init.d/ricci start
chkconfig ricci on

浏览器:https://desktop.example.com:8084  //超户身份登录,点击Nodes,create集群,集群名字不要相同
创建集群的时候,写域名的时候一定要有解析,写ip则不需要,选择download packages,因为它会自动安装并更新软件包,选择use..则不会更新软件包;全部勾选。耗费时间比较长

如果创建后节点未能成功开启的解决办法:把集群相关服务全部开启,并设为开机自启动
/etc/cluster/cluster.conf    //集群配置文件,如果有一个集群节点开启成功,把这个文件scp给未成功的节点,并把下面的服务启动
/etc//etc/init.d/cman start   //集群核心通信服务,开启
/etc/init.d/rgmanager start
/etc/init.d/modclusterd  start   //
监控服务
/etc/init.d/clvmd start
/etc/init.d/ricci start     //
监听端口为1409

chkconfig cman on
chkconfig rgmanager on
chkconfig modclusterd on
chkconfig clvmd on  
chkconfig ricci on




(2)安装fence,fence一定在真机上配置


管理端:
rpm -qa |grep fence  //一定要有下列三个服务,没有就安装
fence-virtd-libvirt-0.2.3-15.el6.x86_64
fence-virtd-0.2.3-15.el6.x86_64
fence-virtd-multicast-0.2.3-15.el6.x86_64    //
虚拟化后台,多波方式


fence_virtd -c   //生成fence_xvm.key配置,默认存储路径为/etc/cluster/fence_xvm.key
Interface [none]: br0    //选择br0作为通信接口

Backend module [checkpoint]: libvirt 

/etc/init.d/fence_virtd start

mkdir /etc/cluster/    //
这个目录没有就创建,应该是之前不存在,需要手动创建的目录
cd /etc/cluster/
dd if=/dev/urandom of=fence_xvm.key bs=128 count=1   //
导出/dev/urandom生成128b为1个字节的fence_xvm.key文件

scp fence_xvm.key 192.168.2.46:/etc/cluster/    //把fence_xvm.key文件同步到两个节点中
scp fence_xvm.key 192.168.2.175:/etc/cluster/
netstat -anulp| grep 1229    //udp
协议服务,端口为1229

可以在desktop46虚拟机cd /etc/cluster/--ll查看是否scp成功,应该是成功的


浏览器192.168.2.4:8084或者dektop.example.com:8084
点击Fence Device,再
add
选择
Fence Virt(Multid Mode)
name 为
vmfence

打开虚拟机点击左上方的感叹号

复制vm1的uuid为d13407df-67d9-2887-73b1-5ce308cb20ca

再点击浏览器nodes 点击页面下方的
Add Fence Method
Method Name为
vmfence1

在浏览器找到Add Fence Instance 选择vmfence...这一项

Domain栏把刚上面复制的uuid粘贴下去,ok,这里本来是填虚拟机的名字如vm1,但是名字可能相同,而且找起来也慢,uuid是唯一的,更快,而且不会错,当然uuid和之前的域名要对应起来,不能弄错

再在该页面点击server75.example.com,点击页面下方的Add Fence Mode
Method Name为
vmfence2

再把vm2的uuid为3e19bbb6-d3ef-f81f-013a-176e863ef1ec复制下来


点击Add Fence Instance 选择vmfence...这一项
Domain栏把刚上面复制的uuid粘贴下去,ok

在浏览器上找到Failover Domains然后点击add,name为webfail,Prioritized和Restricted勾选上,desktop46.example.com和server75.example.com都勾选上,并且在后面权限分别写个1,
2

在所有的机器上yum install -y httpd 不需要你开启或关闭,由集群控制


cd /etc/cluster/-->ls->cat cluster.conf

在浏览器上找到Resources,点击add,选择IP Address,选择一个没有被占用的ip如192.168.2.134(ping不通就说明没占用)填写在IP Address栏,Netmask Bits (optional)写24,其他不变

再在Resources添加选择script,Name填写httpd,Full Path to Script File填写/etc/init.d/httpd

在浏览器找到Service Groups点击add,分别填写www,都勾选,选择webfail  //如果www服务启动失败把资源管理器重启
/etc/init.d/rgmanager restart

点击该页下面的add resource选择刚刚上面该写的ip192.168.2.134再点选add resource选择httpd服务,
ok

在虚拟机终端执行
clustat

在两台虚拟机上

都执行cd /var/www/html/-->echo `hostname` < index.html

打开浏览器输入192.168.2.175或者46都会看到显示各自主机名的网页

然后你随机把某一台虚拟机的http服务关掉,再在另一台虚拟机上watch cluster,你会发现有变化,而且在浏览器上输入192.168.2.134会显示服务关掉的网页,在没有显示前注意看虚拟机上监控的变化,需要一点时间变过来。




(3)磁盘信息本地存储,文件同步,先挂载,再卸载,才能在另一服务端查看到
管理端192.168.2.4
客户端:192.168.2.218和
192.168.2.185

管理端:

yum install -y scsi* 
lvcreate -L 3G -n iscsi vol0
lvs  //
查看iscsi磁盘信息

vim /etc/tgt/targets.conf    //加入后重启不会失效
<target iqn.2014-07.com.example:server.target1>
    backing-store /dev/vol0/iscsi
    initiator-address 192.168.2.185
    initiator-address 192.168.2.218
</target>

/etc/init.d/tgtd start
tgt-admin -s
//Backing store path: /dev/vol0/iscsi  
后面显示路径即表示磁盘分享成功


客户端:
yum install -y iscsi*
iscsiadm -m discovery -t st -p 192.168.2.4   //
建立目标,192.168.2.4是管理端ip地址
iscsiadm -m node -l   //使生效
cd /var/lib/iscsi/nodes-->ls  //可以查看到生效后的信息,iscsiadm -m node -o delete删除命令

fdisk -l   //生效之后查看到多了一个磁盘/dev/sda,大小为3g

在某一个客户端如server85执行:

fdisk -cu /dev/sda
n p 1 enter enter p w

在另一个客户端server218上:
fdisk -l    //刚刚在另一个客户端创建的磁盘已经共享,可以再这台主机上查看到相同的磁盘信息/dev/sda1
cat /proc/partitions   //查看不到/dev/sda1,说明并没有真正同步


在server85上:
/etc/init.d/clvmd status   //clvmd是lvm支持集群服务,要把服务开启,一般是开启的


在server218上:
partprobe   //使磁盘真正同步
cat /proc/partitions   //查看内核分区表,看到/dev/sda1,这时磁盘已经真正同步

lvmconf --enable-cluster
vim /etc/lvm/lvm.conf       //
搜索cluster查看到默认locking_type = 3,如果不是改为3
/etc/init.d/clvmd restart
pvs   //扫描


在server85上:
vgcreate -cy clustervg /dev/sda1

在server218上:
pvs-->vgs  //扫描出现/dev/sda2和clustervg

在server85上:

vgdisplay clustervg   //Clustered为yes,支持集群
lvcreate -L 1G -n clusterlv clustervg
mkfs.ext4 /dev/clustervg/clusterlv   //
格式化

mount /dev/clustervg/clusterlv /var/www/html/
ll -dZ /var/www/html/
clusvcadm -s www     //
停掉www服务
df   //查看已经挂载成功

getenforce   //如果为强制,则执行下一步修改权限,若为disabled,则不需要修改权限
restorecon -Rv /var/www/html/-->ll -dZ /var/www/html/

cd /var/www/html/
vim index.html   //
内容为server85.example.com
umount /var/www/html/  //在//var/www/html/目录下是无法卸载的,要到其他目录下卸载


在server218上:
mount /dev/clustervg/clusterlv /var/www/html/
ll -dZ /var/www/html/   //
查看权限是否修改成功
umount /var/www/html/ -->df


浏览器:http://desktop.example.com:8084
点击Resouces,add选择Filesystem,name为webdata,type为ext4,/var/www/html/, /dev/clustervg/clusterlv,1 2 4 5勾选,递交
ok
点击Service Groups,先把httpd服务remove,然后找到下方的Add Resource,选择webdata,,再把httpd服务添加上,就是说把文件系统挂载之后再不apache服务加上去,递交
ok


在server85上:

clusvcadm -e www  //启动www集群服务,也可以在浏览器Service Groups上选择启动服务。clustat可以看到相关状态信息
// clusvcadm -r www -m server218.example.com   服务迁移命令,在server85上迁移至server218上



(4)集群网络存储同步,在一服务端任何操作,在另一服务端均能立即同步
在server85上:
clusvcadm -s www  
//
把集群服务停掉,然后在浏览器上把webdata服务remove删掉,只留下ip和scripts脚本
//把webdata删掉在于这是个ext4的文件系统,而网络存储是gfs2系统

mkfs.gfs2 -p lock_dlm -t oula:mygfs2 -j 3 /dev/clustervg/clusterlv   //-j日志 一般是节点加1份日志,-p 集群锁 -t集群名字
mount /dev/clustervg/clusterlv /var/www/html/

cd /var/www/html/
vim index.html   //
内容写server85.example.com

restorecon -Rv /var/www/html/    //selinux为enforcing时才需要修改权限,为disabled时不需要修改权限

ll -dZ /var/www/html/ 
//
修改权限后是drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/ ,
未修改前权限是drwxr-xr-x. root root system_u:object_r:file_t:s0      /var/www/html/


在server218上:

mount /dev/clustervg/clusterlv  /var/www/html/ 
ll -dZ /var/www/html/    //
直接挂载,查看权限和修改后权限后一致说明之前的操作都是正确的

cd /var/www/html/ 
//
在该目录下创建或删除文件,在另一个服务端可以即时同步相应操作,比如创建文件,编辑文件内容等

umount /var/www/html/  //在两个服务端上执行这一步把。/var/www/html/卸载掉,在其他目录下卸载,在/var/www/html/目录卸载不了

blkid     //把uuid序列号复制下来
vim /etc/fstab  //写入如下信息
UUID=b77c412e-3327-6fea-0550-16784a9d7987       /var/www/html   gfs2    _netdev 0 0
//
因为是网络存储文件,所以defaults改为_netdev

mount -a   //挂载测试:再把/dev/mapper/clustervg-clusterlv挂载到/var/www/html上,df查看挂载情况

ll -dZ /var/www/html/   //权限应为drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

clusvcadm -e www  //开启www服务组

clustat  //查看状态

clusvcadm -r www -m server85.example.com
//
更改主节点为server85.example.com,在server85上watch clustat,查看www服务状态变化,ok




(5)gfs2拉伸

在server85上:
gfs2_tool sb /dev/clustervg/clusterlv all
//sb_locktable = oula:mygfs2

gfs2_tool journals /dev/clustervg/clusterlv  //
查看日志文件,如果这步执行不了,再挂载一下mount /dev/clustervg/clusterlv /var/www/html/
lvextend -L +1G /dev/clustervg/clusterlv  //lvextend -l +255 /。。拉伸单位为M时用l,为G时用
L

gfs2_grow /dev/clustervg/clusterlv  //扩展

lvs-->df -h   //查看扩展后的大小,df -h以1024M为1G,df -H以1000M为1G,算法不同

gfs2_jadd -j 2 /dev/clustervg/clusterlv  //新增日志2个,之前是3个,现在加2个就是5个

如果集群坏了,那我们挂载的/var/www/html/目录下所有数据都将丢失,但是原来目录/dev/clustervg/clusterlv/下的数据还是在的,这时候要把它取出来
lftp i:/pub> get gfs2.img  //网络存储格式的磁盘空间,里面有很多数据
gfs2_tool sb gfs2.img all  //sb_locktable = hacluster:mygfs,与之前的不一样

mount -t gfs2 -o loop,lockproto=lock_nolock gfs2.img /mnt/  //可以把/mnt/下内容scp到其他服务器上,把磁盘中数据取出来存储到其他安全服务器中,这样数据就恢复出来了
umount /mnt/   //在其他目录下卸载



(6)
再添加一台虚拟机192.168.2.128,server28.example.com,火墙和selinux刷掉,时间同步,四台主机解析做好
在server218上:scp /etc/yum.repos.d/dvd.repo 192.168.2.128:/etc/yum.repos.d/

在server128上:

yum源配置目录下只有dvd.repo一个配置文件,yum clean all
yum install -y ricci
passwd ricci   //设置密码为
westos
chkconfig ricci on
/etc/init.d/ricci start

浏览器:找到Node,选择add,写入server28.example.com,选择Download..,全部勾选,
ok
      找到Service Groups,勾选www服务
disabled


dektop管理端上:

cd /etc/cluster/
scp fence_xvm.key 192.168.2.128:/etc/cluster/

浏览器:
找到Node,点击server28.example.com,点击下方的Add Fence Method,Method name为fence3,页面跳转后点击Add Fence Instance,选择vmfence..,domain填写虚拟即复制的uuid号3707b03c-f4e8-1f19-ec28-9f38aaba445c,递交,ok;
再点击页面的Failover Domains,点击webfail,勾选server28.example.com,然后权限为2,update..ok;

server28上:

yum install -y httpd
yum install -y iscsi*

在管理端dekstop上:
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.2.128   //将192.168.2.128临时加入iscsi,重启后将失效
tgt-admin -s   //查看节点192.168.2.128是否添加成功

vim /etc/tgt/targets.conf   //永久生效
initiator-address 192.168.2.128

/etc/init.d/tgtd restart

server28
上:
iscsiadm -m discovery -t st -p 192.168.2.4
iscsiadm  -m node -l

lvmconf --enable-cluster   //
使lvm支持集群
/etc/init.d/clvmd restart
lvs-->vgs  //clustervg
和clusterlv都添加成功

vim /etc/fstab   
UUID=b77c412e-3327-6fea-0550-16784a9d7987       /var/www/html   gfs2    _netdev 0 0

clusvcadm -e www
//
启动www服务,也可以在浏览器上把www服务start  ,如果某个服务端fence不同步,把该服务端fence_xvm -H node2重启即可

clustat  //查看集群状态









 

© 著作权归作者所有

共有 人打赏支持
小孩66
粉丝 2
博文 31
码字总数 37665
作品 0
西安
架构师
redis-cluster研究和使用

最近研究redis-cluster,正好搭建了一个环境,遇到了很多坑,系统的总结下,等到redis3 release出来后,换掉memCache 集群 一:关于redis cluster 1:redis cluster的现状 reids-cluster计划在red...

闪电
2016/08/20
51
0
redis cluster 安装部署

redis cluster 依赖环境安装 redis 集群某些功能需要依赖 ruby 运行环境,基于yum进行安装: 安装redis的ruby组件: 提示: 解决办法 重试,发现可以安装成功,之前的 ERROR 变成了 WARNING ...

walle-Liao
2016/05/02
286
0
Redis ​集群迁移工具--Redis-Migrate-Tool

Redis 集群迁移工具,基于redis复制,快速,稳定。 github链接:https://github.com/vipshop/redis-migrate-tool 特点: 快速。 多线程。 基于redis复制。 实时迁移。 迁移过程中,源集群不影...

d_e_e_p_
2016/04/06
8.4K
3
Redis-Cluster实战--2. 命令协议说明

转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426 一:集群相关 cluster info 打印集群的信息 cluster nodes 列出集群当前已知的所有节点(node),以及这些节点的相关信息。 二:节点...

付磊-起扬
2015/09/12
0
0
Rancher2.0导入本地RKE Kubernetes集群图解

简要说明: 使用RKE工具在192.168.3.161机器上,创建包含两个节点的Kubernetes集群,(192.168.3.162和192.168.3.163)。RKE会自动在/home/用户 目录下创建kubeconfigcluster.yml配置文件。 ...

猫猫maomao
02/14
0
0
技术分享之Redis Cluster那些事儿

前言: 没什么好说的,先前看到兄弟部门的同事们对redis cluster很感兴趣,也在实施redis cluster集群。正好我也有redis cluster的一些管理经验。本着知识要传播要分享的精神,在公司内部做了...

rfyiamcool
06/01
0
0
hbase集群间数据迁移

HBase迁移数据方案一(集群互联) 一、需要在hbase集群停掉的情况下迁移 步骤: (1)执行Hadoop distcp -f filelist "hdfs://new cluster ip:9000/hbasetest" (2)在new cluster执行./hbase o...

张欢19933
2016/04/18
600
0
RabbitMQ管理(5)——集群管理

rabbitmqctl joincluster {clusternode} [–ram] 将节点加入指定集群中。在这个命令执行前需要停止RabbitMQ应用并重置节点。更多详细内容请参考RabbitMQ安装。 rabbitmqctl clusterstatus 显...

u013256816
2017/10/26
0
0
ubuntu 安装 redis集群

计划部署三个虚拟机 三个master节点 三个slave节点: IP:192.168.26.133 port:7133(master) port:8133(slave) IP:192.168.26.134 port:7134(master) port:8134(slave) IP:192.168.26.135 po......

foxeye
2015/11/24
529
0
redis cluster安装及配置

原生命令搭建redis cluster 分布式3主3从 1.准备节点 这里演示单机多部署(生产环境多机)首先准备6个节点分别是7000-7005端口 先配置7000端口 这里说明下cluster相关的配置 cluster-enable...

吴正宇
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知识点总结

jq如何拿到data-info的自定义属性 1.1 原生可以获取到所有属性el.attrbutes 1.2 jq的$(el).attr('属性名称') 继承的几种方式,原型链 2.1 扩展原型对象实现继承 2.2 替换原型对象实现继承 2....

litCabbage
3分钟前
0
0
python语言规范

http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/...

ghou-靠墙哭
7分钟前
0
0
istio 监控,遥测 (理论)

Istio提供了一种灵活的模型来强制执行授权策略并收集网格中服务的遥测。 基础架构后端旨在提供用于构建服务的支持功能。它们包括诸如访问控制系统,遥测捕获系统,配额执行系统,计费系统等之...

xiaomin0322
9分钟前
0
0
阿里资深专家面试问题收集

corejava hashcode相等的两个对象一定相等吗?equals呢?反过来相等吗? 介绍一下集合框架? hashtable,hashmap底层实现是什么?hashtable和concurrenthashmap底层实现的区别? hashmap和treemap的...

undefine
10分钟前
4
0
alpine安装软件指定安装源

linux-alpine安装软件指定安装源 一、永久修改apk下载源地址 vi etc/apk/repositories 替换成阿里源 http://mirrors.aliyun.com/alpine/v3.8/main/http://mirrors.aliyun.com/alpine/v3...

我心中有猛狗
11分钟前
0
0
Centos7通过yum安装nginx

添加源地址(直接install可能不是最新版本的) sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 安装 sudo yum install -y ng......

iplusx
12分钟前
0
0
ef .core Dapper Helper

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Threading.Tasks; using Dapper; using Dap......

Lytf
14分钟前
0
0
iOS 小笔记

1.以下代码打印什么     __block int val = 10;    void (^blk)(void) = ^{        printf("val=%d\n",val);        };       val = 2;    blk(); /...

风了个1
16分钟前
0
0
【Spring Boot 系列 Spring Boot示例程序】

入门程序步骤,创建一个Maven项目。继承Spring Boot官方提供的父工程。再引入一个Web的应用启动器。 1、选择一个合适的IDEA工具 创建一个Maven工程,并添加如下配置 <parent> <...

HansonReal
17分钟前
0
0
217. Contains Duplicate - LeetCode

Question 217. Contains Duplicate Solution 题目大意:判断数组中是否有重复元素 思路:构造一个set,不重复就加进去,重复返回true,如果数据量大的话,可以用布隆过滤器 Java实现: publ...

yysue
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部