设为首页 收藏本站
查看: 1267|回复: 0

[经验分享] 存储系统高可用架构

[复制链接]

尚未签到

发表于 2017-6-24 18:52:16 | 显示全部楼层 |阅读模式
1 存储系统高可用架构
1.1 系统整体架构

2 主要部件相关机制
2.1 pacemaker + cman + corosync
这部分主要工作有以下方面:(1)关于高可用架构的选型
2.1.1 IBA网络
IBA虚拟化
2.1.2 Lustre文件系统
双控盘阵支撑
盘整MMP参数调整
lustre服务脚本改造
Lustre resource脚本
2.1.3 虚拟机及内lwfsd管理
Lwfsd resource脚本
虚拟机服务加入到pacemaker
2.1.4 高可用图形界面展示
2.2 高可用容错主要场景
3 软件栈配置过程
软件安装[all]
pacemaker-libs-1.1.12-4.el6.x86_64
pacemaker-1.1.12-4.el6.x86_64
pacemaker-cts-1.1.12-4.el6.x86_64
pacemaker-libs-devel-1.1.12-4.el6.x86_64
pacemaker-cluster-libs-1.1.12-4.el6.x86_64
pacemaker-remote-1.1.12-4.el6.x86_64
pacemaker-cli-1.1.12-4.el6.x86_64
pacemaker-doc-1.1.12-4.el6.x86_64
pcs-0.9.123-9.0.1.el6.centos.x86_64
双控盘整MMP设置,将mmp_update_interval设置为60s[all]
tune2fs -O mmp /dev/sdf
tune2fs -E mmp_update_interval=60 -f /dev/sdf
清理旧环境下的遗留信息[选做][all]
rm -fr /etc/cluster/cluster.conf
rm -fr /var/lib/pacemaker/cib/*
rm -fr /var/lib/pcsd/*
在每个节点上为用户hacluster设置密码[在每个需要添加的点上]
echo 123456 |passwd --stdin hacluster
关闭corosync开机自启动[all]
chkconfig corosync off
开机自启动pcsd服务[在每个需要添加的节点上]
chkconfig pcsd on
并在节点上启动以下服务,接受pcs命令[在每个需要添加的节点上]s
service pcsd start
认证节点脚本[在集群中的一个点上,添加新的节点进去] 命令格式:sh node_auth.sh gio033

将节点加入到同一个集群中[one]
pcs cluster setup --enable --name clustre raid-dev vm02 vm03【初始化】
pcs cluster node add gio031 --start --enable [后续节点添加]
启动集群[all]
pcs --debug cluster start
设置集群参数[one]
pcs property set start-failure-is-fatal=false
pcs property set stonith-enabled=false
pcs property set symmetric-cluster=false
设置资源的默认设置[one]
pcs resource defaults migration-threshold=5
pcs resource defaults failure-timeout=10s
创建资源[one]

创建资源colocation[all];在需要加入的点上执行:sh colocation.sh

设置Lustre的资源为optional order
关闭所有资源[one]
for i in `pcs resource|awk '{print $1}'`;do pcs resource disable $i;done
打开所有资源[one]
for i in `pcs resource|awk '{print $1}'`;do pcs resource enable $i;done
清理所有资源的状态
for i in `pcs resource|awk '{print $1}'`;do pcs resource cleanup $i;done
4 虚拟机的安装及克隆
4.1 KMV模板的制件
4.1.1 安装相关软件
yum install -y python-virtinst virt-viewer virt-manager libvirt-client libvirt  qemu-img qemu-kvm gpxe-roms-qemu
4.1.2 配置桥接网络
更改主机网络配置文件分别如下:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
IPV6INIT="no"
MTU="1500"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE=br0
/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
BOOTPROTO="static"
IPV6INIT="no"
MTU="1500"
NM_CONTROLLED="no"
ONBOOT="yes"
IPADDR="20.0.11.16"
GATEWAY="20.0.255.254"
NETMASK="255.0.0.0"
TYPE="Bridge"
4.1.3 生成虚拟机镜像
qemu-img create /root/kvm.img 40G

4.1.4 安装虚拟机
virt-install --name=kvmtem --ram 8192 --vcpus=8 -f /root/kvmtem.img --cdrom rhel-6.4.iso --network bridge=br0 --force --graphics vnc,listen=*,port=5908 --noreboot
此时会自动启动KVM的图形安装界面,安装完毕后关闭虚拟机.
4.1.5 添加IB虚拟设备
virsh attach-device kvmtem ./mellax02.xml  --config
virsh attach-device kvmtem ./mellax01.xml  --config
melle*.xml示例如下,其中的bus和slot值可以通过lspci | grep Mella获取
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x82' slot='0x01' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</hostdev>
4.1.6 说明
再次启动虚拟机,安装Lustre文件系统,IB驱动,lwfsd,lwfsd-pacemaker脚本(拷贝至/usr/lib/ocf/resource.d/heartbeat/下.之后关闭虚拟机.此此安装的虚拟机只用于克隆目的.故请先安装好所有必须软件.
4.2 KVM的克隆
4.2.1 安装相关软件
yum install -y python-virtinst virt-viewer virt-manager libvirt-client libvirt  qemu-img qemu-kvm gpxe-roms-qemu
4.2.2 复制镜像
scp 18.0.11.1:/root/ /kmvtem.img /root/vnio008.img
4.2.3 修改镜像配置
此步当克隆虚拟机较多时,可写成脚本使用c3执行.
mkdir /mnt/loop
mount -o loop,offset=$((512 * 2099200)) ./vnio008.img /mnt/loop

rm -f /mnt/loop/etc/udev/rules.d/70-persistent-net.rules
sed -i "s/^HOSTNAME.*$/HOSTNAME=vnio008/" /mnt/loop/etc/sysconfig/network
sed -i "s/^IPADDR=.*$/IPADDR=20.0.211.8/" /mnt/loop/etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "s/^UUID/# UUID/" /mnt/loop/etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "s/^HWADDR/# HWADDR/" /mnt/loop/etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "s/^IPADDR=.*$/IPADDR=19.0.211.8/" /mnt/loop/etc/sysconfig/network-scripts/ifcfg-ib0
sed -i "s/^UUID/# UUID/" /mnt/loop/etc/sysconfig/network-scripts/ifcfg-ib0
sed -i "s/^HWADDR/# HWADDR/" /mnt/loop/etc/sysconfig/network-scripts/ifcfg-ib0
sed -i "s/^IPADDR=.*$/IPADDR=18.0.211.8/" /mnt/loop/etc/sysconfig/network-scripts/ifcfg-ib1
sed -i "s/^UUID/# UUID/"  /mnt/loop/etc/sysconfig/network-scripts/ifcfg-ib1
sed -i "s/^HWADDR/# HWADDR/" /mnt/loop/etc/sysconfig/network-scripts/ifcfg-ib1
4.2.4 生成虚拟机
virt-install --name=kvm --ram 8192 --vcpus=8 -f ./kvm.img --network bridge=cloudbr0 --force --graphics vnc,listen=*,port=5908 --noreboot --import –noautoconsole
4.2.5 设置虚拟机开机启动,添加ib网卡
当一台主机上要同时启动两台及以上虚拟机时,要保证每一个虚拟网卡的使用的slot与func组合唯一.具体可参见前面的安装部分,共用8个虚拟网卡可用.
virsh autostart vnio008
virsh attach-device vnio008 ./mellax02.xml  --config
virsh attach-device vnio008 ./mellax01.xml  --config
4.2.6 启动虚拟机
virsh start vnio008
4.2.7 查看虚拟机
virsh list –all
4.3 pacemaker的安装及设置
注: 以下文档中带有[ALL]的指令表示须在所有节点上执行(可使用C3),带有[ONE]的指令表示只须在其中一台上执行,此台主机最好固定.且以下操作在实机上执行.
4.3.1 安装pacemaker及相关软件
[ALL]       cat << -EOF >> /etc/hosts;
[mds00]     cexec cluster: "mkdir -p /root/.ssh; rm -f /root/.ssh/id_ras*"
[mds00]     cpush cluster: /etc/.ssh/* /etc/.ssh
[ALL]       yum -y erase corosync pcs rubygems pacemaker-cli pacemaker-libs pacemaker pacemaker-cluster-libs
[ALL]       rm -f /etc/cluster/cluster.conf
[ALL]       yum install -y cman  corosync
[ALL]       yum localinstall -y pcs*.rpm rubygems*.rpm pacemaker*.rpm glib2*.rpm ccs*.rpm
4.3.2 初始配置
[ALL]       chkconfig corosync off
[ALL]       /etc/init.d/corosync stop
[ALL]       chkconfig NetworkManager off
[ALL]       /etc/init.d/NetworkManager stop
[ALL]       chkconfig pcsd on
[ALL]       echo CMAN_QUORUM_TIMEOUT=0 > /etc/sysconfig/cman
[ALL]       echo 123456 | passwd --stdin hacluster
[ALL]       service pcsd start
[ONE]       pcs cluster auth node01 node02
[ONE]       pcs cluster setup --start --name 0102 node01 node02

[ONE]       pcs property set stonith-enabled=false
[ONE]       pcs property set symmetric-cluster=false
[ONE]       pcs property set no-quorum-policy=stop
[ONE,OPT]   pcs cluster enable --all
[ONE]       pcs cluster status
4.4 Pacemaker_remote安装配置与lwfsd资源添加
注: 以下文档中带有[guest]的指令表示须在所有虚拟机中执行(可使用C3),带有[ONE]的指令表示只须在其中一台实体机上执行,此台主机最好固定.且以下操作在实机上执行.
4.4.1 安装pacemaker_remote
[guest]    yum -y localinstall pacemaker-remote-*.rpm resource-agents-*.rpm pacemaker-libs-*.rpm glib2-*.rpm  pacemaker-cli-*.rpm pacemaker-cts-*.rpm pacemaker-cluster-libs-*.rpm
4.4.2 虚拟机内配置
[guest]    echo 123456 | passwd --stdin hacluster
[guest]    echo CMAN_QUORUM_TIMEOUT=0 > /etc/sysconfig/cman
[guest]    chkconfig corosync off
[guest]    /etc/init.d/corosync stop
[guest]    chkconfig NetworkManager off
[guest]    /etc/init.d/NetworkManager stop
[guest]    chkconfig pacemaker_remote on
[guest]    /etc/init.d/pacemaker_remote start
4.4.3 认证设置
[one]      dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1
将生成的authkey拷贝至所有的节点,包括实体机与虚拟机.节点中可能没有/etc/pacemaekr文件夹,自行新建.
4.4.4 创建虚拟机resource
第一步在特定虚拟机所在的实体节点上执行.
[kvm-host] virsh dumpxml vnio006 > /root/vnio006.xml
[one]      pcs resource create vm-vnio006 VirtualDomain hypervisor="qemu:///system" config="/root/vnio006.xml" meta remote-node=vnio006 --disabled
[one]      pcs constraint location vm-vnio006 prefers nio006=500 nio005=100
[one]      pcs resource enable vm-vnio006
4.4.5 创建lwfsd资源
当虚拟机及其内的pacemaker_remote服务均启动后,可用pcs status验证虚拟机作为节点(container)包括在集群中后,执行如下命令,其中的资源名称与虚拟机主机名据具体情况更改.
[one]      pcs resource create lwfsd-vnio006 ocf:heartbeat:lwfsd vhost=vnio006
[one]      pcs constraint location lwfsd-vnio006 prefers vnio006=500
[one]      pcs resource enable lwfsd-vnio006
[one]      pcs constraint order start vm-vnio006 then start lwfsd-vnio006
[one] pcs constraint order stop lwfsd-vnio006 then stop vm-vnio006
[ONE,optional]  pcs resource update vm-vnio00 op start timeout=900
5 高可用软件展示

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387646-1-1.html 上篇帖子: NiceDcv搭建过程-底层红帽子 下篇帖子: 使用openvswitch 和dnsmasq来实现虚拟机网络隔离
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表