HA | 高可用集群 |
LB | 负载均衡 |
HPC | 分布式集群 |
HA高可用集群构架练习图
VM:
环境密码 Asimov
virt-manager 启动VM的程序
rht-vmctl reset nodea 重装nodea机器
all 重装所有
ssh -X root@nodec.cluster0.example.com 加载图形化
两节点不考虑票的概念
192.168.0.0 | 心跳网络 |
192.168.1.0 192.168.2.0 | 存储网络 |
172.25.0.0 | 业务网络 |
yum -y install pcs 红帽7集群包
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl start pcsd
systemctl enable pcsd
echo redhat | passwd --stdin hacluster
pcs cluster auth nodea.cluster0.example.com nodeb.cluster0.example.com nodec.cluster0.example.com 将3台机器加入集群(做一次就可以)
打开火狐
firefox https://nodea.cluster0.example.com:2224
nodes | 节点 |
resources | 资源 |
fence devices | 阻止 |
acls | 访问控制列表 |
cluster properties | 集群 |
Stonith Enabled | 爆头机制 |
manage clusters |
vip 虚拟ip
crm_mon -1
pcs cluster enable --all | 永久开启所有设备 |
pcs cluster standby | 负载百分百 |
pcs cluster unstandby | 取消负载百分百 |
pcs cluster stop | 关闭,停止 |
Quorum | 集群存活的因数 |
当集群三节点中两台机器都坏掉了,集群就已经挂了
corosync-quorumtool -l | 查看集群当中的票数 |
quorum=N/2+1 | n=总票,最低的quorum票数标准 |
vim /etc/corosync/corosync.conf | 节点之间做同步的文件 quorum_votes: |
pcs cluster stop --all | 关闭所有 |
pcs cluster sync | 同步所有 |
pcs cluster start | 开启所有 |
建议不要修改票数,保持默认票数
fence 通过fence来解决脑裂
ifdown | 关掉哪块网卡 |
ifup | 起哪块 网卡 |
yum -y install fence-virt*
mkdir /etc/cluster
dd if=/dev/zero of=/etc/cluster/fence_xvm.key bs=4k count=1
fence_virtd -c
abc全部创建 /etc/cluster
abc全部下发
systemctl restart fence_virtd
systemctl restart libvirtd
enable
pcmk_host_list 输入abc的主机名
pcs stonith fence nodea | 手动fence |
/dev/null | 空设备,是一个无底洞 |
/dev/zero | 空设备,从无到有 |
dd if=/dev/zero of=aa bs=1M count=100
资源:
IP/web server(httpd) ----/var/www/html/filesystem
ocf:heartbeat 类似与心跳的作业
systemd 系统服务 在集群当中只需要安装这个服务不需要启动这个服务
failback | 资源选优回漂 |
添加这个值:
resource-stickiness 39 这个值会和备份加点值相加
is-managed false 一当添加这个值 这个资源不受集群控制
priority 默认为0 自动放弃优先级最低的资源
pcs resource group add web1 vip httpd-service
systemctl is-active httpd 服务启动状态
systemctl status httpd
echo nodea > index.html
/var/log Linux 全部日志的文件
/etc/corosync/corosync.conf
logfile: /var/log/cluster/cluster.log
pcs cluster stop --all
pcs cluster sync
pcs cluster start --all
cluster.log这个日志不会同步,必须每个节点都来做
生成集群节点的日志
监控机制:
脚本监控
vim cluster.sh
#!/bin/bash
date > aa.txt
wq
chmod +x cluster.sh
scp cluster.sh root@nodea.cluster0.example.com/root
资源下添加
邮件监控
netstat -tulnp 查看端口
netstat -tulnp | grep 25
nfs
配置文件的目录/etc/exports
SAN
FCSAN 光钎
iscsiSAN价格便宜,通过网线接入
df -h | 查看分区的剩余空间 |
df -l | 查看分区 |
mkdir /virtio
dd if=/dev/zero of=/virtio/vdsik1 bs=1M count=500
du -sh vdisk1 | 查看大小 |
yum -y install targetcli
systemctl enable target
tarfetcli
backstores 存储设备放在里面
block 真实的设备
fuleio
pscsi
ramdisk
create> iscsi_store /virtio/vdisk1
create iqn.2016-09.com.example:storage
cd
create iqn.2016-09.com.example:storage/tpg1/acls
clearte iqn.2016.09.com.example:node
create /backstores/fileio/iscsi_store
vim initiatorname.iscsi
iqn.2016.09.com.example:node
iscsiadm -m discovery -t sendtargets -p 192.168.1.13
iscsiadm -m node -T iqn.2016-09.com.example:storage -p 192.168.1.13 -l
iscsiadm -m discovery -t st -p 192.168.1.13 -l
iscsiadm -m node -U all 停掉所有的设备
iscsiadm -m node -u 单独停掉哪一台
iscsiadm -m node -o delete 删除规则
多路径(把两条链路整合成一条路径)
yum -y install device-mapper-multipath
systemctl restart multipathd.service
systemctl enable multipathd.service
multipath -l 查看
kernel driver | 内核模块 |
lsmod | grep multipath 查看这个mod模块
modprobe dm_multipath 加载这个mod模块 (当前生效)
vim /etc/rc.d/rc.local 开机脚本目录文件
chmod +x /etc/rc.d/rc.local
cd /dev/mapper/ 全部存放逻辑设备
vim /etc/multipath.conf
vim /root/.bash_profile
source .bash_profile
scsi_id -u -g /dev/sda
cd /etc/multipath
clm 共享存储的文件同步
集群及的文件系统
gfs2
clone克隆技术
yum -y install dlm lvm2-cluster.x86_64
/etc/lvm.comf主配置文件
lvmconf --enable-cluster | 自动将locking_type改为3 |
systemctl stop lvm2-lvmetad.service ; systemctl disable lvm2-lvmetad
clvmd -R ; partprobe /dev/mapper/mpatha 创建磁盘后同步
yum -y instll gfs2-utils* 文件系统的包
mkfs.gfs2 -p lock_dlm(机制) -t cluster1:xxxx -j 4(日志区的个数)/dev/vg1/lv1 文件系统格式化
gfs2_jadd 1 /dev/vg1/lv1 向这个地方添加了一块日志区
红帽6
tune2fs -l /dev/sda5 查看ext文件系统的分区的详细信息
tune2fs -o acl /dev/sda5 ; mount -o remount,acl /dev/sda5 给这个分区添加一个acl选项,重新加载了一次。
mount -o remount,acl /xx 当前生效给gfs添加acl权限
mount -o remount,quota=on /xx 开放磁盘配额
quota 磁盘配额
quotacheck -cugm /xx 扫描
edquota -u 限制用户
blicks | 块 以kb为单位 |
inodes | 文件数量 |
soft | 软限制 |
hard | 硬限制 |
RNP 心跳功能
corosync-cfgtool -s 查看心跳网络
corosync.conf 配置文件
cp corosync.conf.example corosync.conf.example.bak
16行括号下面的注释都删掉
transport: udpu
rrp_mode: active
interface {
ringnumber: 0
bindnetaddr: 172.25.0.0
mcastaddr: 239.255.1.1
mcastport: 5405
ttl: 1
}
interface {
ringnumber: 1
bindnetaddr: 192.168.0.0
mcastaddr: 239.255.1.1
mcastport: 5405
ttl: 1
}
rm -rf corosync.conf.example.bak
pcs cluster stop --all
pcs cluster sync
pcs cluster start --all