积累经验
2014年(55)
分类: 服务器与存储
2014-01-23 00:30:57
多路冗余(Multipathing)
1. 多路径连接同一存储设备保证冗余的高可用性
○ 如果网络总线适配器(HBA)或者网络接口失效,可以通过额外的路径保证存储设备的可用性
2. 支持光纤通道(FC)、网络SCSI (iSCSI)和全局网络块设备(GNBD)
多路冗余的好处在于当节点于SAN共享存储设备连接出现异常的时候,节点可以使用额外的路径尝试继续操作存储设备。业界Multipath I/O相关的软件不下几十种,但商业软件居多,开源的以Device Mapper著名,它也是 Linux Kernel 支持的多路径 IO 软件解决方案。Devies Mapper Mulitpath (dm-multipath) 允许节点在多路径中选择存储控制器。
GFS2文件系统概述
RedHat的GFS2文件系统是包含在RedHat Enterprise Linux 4 以上发行版内核中的,是固有文件系统,可以直接和Linux内核虚拟文件系统层(VFS层)交互。GFS2作为RedHat集群文件系统采用分布式元数据和多日志方式(multiple journal),并且RedHat仅支持GFS2文件系统作为高可用性集群文件系统部署使用。
GFS2:全局文件系统第二版,GFS2是应用最广泛的集群文件系统。它是由红帽公司开发,允许所有集群节点并行访问。元数据通常会保存在共享存储设备或复制存储设备的一个分区里或逻辑卷中。
Multipath是以设备映射的方式实现LUN设备的持久化、多路径轮询的一种技术。
实验目的:通过RHCS集群套件搭建GFS2集群文件系统,保证不同节点能够同时对GFS2集群文件系统进行读取和写入,其次通过multipath实现node和FC,FC和Share Storage之间的多路冗余,最后实现存储的cmirror复制达到高可用。
1. 初始化环境
server*2 双网卡桥接
storage*2 双网卡 双硬盘
同步/etc/hosts文件
确认yum源
清空保存防火墙
2. server*2配置集群环境 (主播地址)
server1: luci , ricci (ricci用户添加密码)
server2: ricci
gfs 集群化文件系统 clvmd 服务 cmirrord服务
3. storage1 划分区并使用tgtd导出
scsi_id xxx(自定义唯一性) ,wwid识别共享存储设备
4. server1,2导入
安装multipath配置文件
生成multipath配置文件
复制范例修改
启动服务
5. clvmd
pvcreate vgcreate lvcreate
6. 安装cmirror包
启动cmirrord (server1,2)
lvconvert 将lv做成镜像方式
dmsetup ls –tree
7. mkfs.gfs2 格式化lv
挂载测试:先停storage1
ifdown storage2
实验环境:Red Hat Enterprise Linux Server release 6.3
4台机器,2台server做集群,2台storage做raid1,storage1做lvm共享存储,storage2做1的镜像。
server双网卡配置2个网段,storage双网卡,双硬盘:
192.168.10.1 server1.uplooking.com server1
192.168.11.1 server1.uplooking.com server1
192.168.10.2 server2.uplooking.com server2
192.168.11.2 server2.uplooking.com server2
192.168.10.100 storage1.uplooking.com storage1
192.168.11.100 storage1.uplooking.com storage1
192.168.10.101 storage2.uplooking.com storage2
192.168.11.101 storage2.uplooking.com storage2
一.配置机器
复制虚拟机system.img文件到/var/lib/libvirt/images/
账号密码:root uplooking
4台虚拟机修改主机名,配置网络system-config-network-tui,确认新增eth1网卡onboot=yes,同步hosts文件,reboot。
4台机器yum install openssh-clients –y (scp,ssh)
真机绑IP:
ifconfig br0:101 192.168.101.200 10网段任意IP
ifcofnig br0:110 192.168.110.200
二.Server1-2集群
server1:luci ricci
echo uplooking|passwd –stdin ricci
service luci start
sevice ricci start
iptable –F
service iptables save
server2:ricci
echo uplooking|passwd –stdin ricci’
sevice ricci start
iptable –F
service iptables save
server1:
点击undent,…
账号密码:root uplooking
create new cluster=>name=>选中1.use the same password for all nades 2.Download package 3.enable share storage support
=>输入2台serverIP或主机名=>查看是否5个服务都running。
添加集群失败重新添加:
1.2台机器luci ricci服务停止
2.rm –rf /etc/cluster 删除集群配置目录文件
3.重启机器
4.重启服务,重新添加集群。
三.导入共享存储
导出端:yum install scsi* -y
导入端:yum install iscsi* -y
storage1:
yum install scsi* -y
iptables –F
service iptables save
fdisk –l /dev/vdb 查看第2个硬盘是否存在
fdisk /dev/vdb 分区2G
ls /dev/vdb1
vi /etc/tgt/target.conf
scsi_id ST2G7200X01 自定义wwid需唯一(光纤使用wwid)
service tgtd start
tgtadm --lld iscsi --mode target –op show 查看共享存储是否导出 scsi_id
server1-2:做相同操作导入共享存储
yum install iscsi* -y
iscsiadm –m discovery –t st –p 192.168.10.100 (发现同时起服务)
iscsiadm –m discovery –t st –p 192.168.11.100
issciadm –m node –l 2个全部导入
ls /dev/sd* 应该有2个sda sdb
yum install device-mapper* -y 安装设备映射
ls /etc/multipath.conf 不存在
mpathconf --enable 生成配置模板
yum install vim –y
vim /etc/multipath.conf
multipath{} 找到范例,复制修改,
1. 删除简单mulitipath范例,保留详细的子范例。(一个设备对应一个mulitipath{})
2. wwid 1ST2G7200x001
通过以下命令获取wwid,2个应该相同(同一个存储设备)。
scsi_id –g –u /dev/sda
scsi_id –g –u /dev/sdb
3. alias storage1
4. path_checkor 删除这一行,rhel不支持
5. path_slector “round-robin 0” round-robin负载均衡,0表示冗余
/etc/init.d/multipathd start
ls /dev/mapper/ 查看multpath设备是否生成
fdisk /dev/vdb分区2G,和stroage1一样.
Yum install scsi* -y
Vim /etc/tgt/target.conf
scsi_id ST2G7200X002 和storage1wwid不同
<\backing-store>
<\target>
service tgtd start
iptables –F
service iptables save
server1-2:导入storage2
iscsiadm –m discovery –t st –p 192.168.10.101
iscsiadm –m discovery –t st –p 192.168.11.101
iscsiadm –m node -l
ls /dev/sd* 2个设备,现在有4个sda sdb sdc sdd
server1:获取wwid号:
scsi_id –g –u /dev/sdc (同一存储设备wwid相同)
scsi_id –g –u /dev/sdd
vim /etc/mutlipath.conf
复制storage1的mutlipath{}修改
1. wwid 1ST 2G7200X002 通过scsi_id命令获取
2. alias storage2
3.
/etc/init.d/multipathd restart
server2: scp 192.168.10.1:/etc/mutlipath.conf /etc
server2:/etc/init.d/mulipathd restart
server1:
ls /dev/mapper 有2个storage1 storage2
pvcreate /dev/mapper/storage2
pvs
server2:pvs 也能看到(做过集群,server1创建PV,server2同时生成)
vgcreate cvg /dev/mapper/storage1 创建VG
vgextend cvg /dev/mapper/storage2 扩展VG
lvcreate –L 100 cvg –n clv1 创建LV
dmsetup ls --tree 查看映射汇总信息
dmsetup table 查看映射表
创建镜像:lv原来在storage1上,现在需要在storage2产生镜像,并且以后storage2以镜像方式写数据。
yum install cmirror –y server1-2都要安装,集群镜像
/etc/init.d/cmirrord start
lvconvert –m 1 /dev/cvg/clv1 /dev/mapper/storage1 /dev/mapper/storage2 LV越大转换时间越长
2种方式做镜像:
1.在创建lv同时创建镜像,通过参数指定。
2.先创建lv再转换成镜像,通过lvconvert转换,-m 1 镜像参数。在同一个cvg,同一个clv1中2个节点做镜像。
dmsetup ls --tree 这次和上一次不一样
测试:一个存储挂掉,看看是否还能读写
server1:
mkfs.gfs2 –p lock_dlm –j 2 –t my_cluster:lock2 /dev/cvg/cvl1
mount /dev/cvg/clv1 /opt
cd /opt
ls
echo 1234 > file1
server2: mount /dev/cvg/clv1 /opt
cat /opt/file
storage1 电源关掉后读file文件
server1-2:cat file1 5分钟以内-高可用性
显示1234 说明storage2上有相同镜像
测试2:
storage2:
ifdown eth0
ifconfig
ping 192.168.10.101 ping不通说明坏了
server1:echo 1111 > file2 写入数据后继续等待
server2:multipath ll 也要等待,查看状态,是否running