发表于 2019-1-7 10:11:01

IV 10 MySQL+heartbeat+nfs

IV 10 MySQL+heartbeat+nfs.docx
  一、相关注意事项:
  基于heartbeatV2(crm)和nfs共享实现mysql高可用集群(关键点:如果是一主一从两个node,主若挂掉,从可以取而代之,并且主node上的数据,从node可以访问到;此种架构并不理想,nfs-server易成为单点故障,若再对nfs做高可用共享存储要用iscsi,这时至少要4台设备,再者如果有iscsi设备就可直接使用,不用再中间夹个nfs)
  本例中在NFS共享存储中仅是mysql数据目录,两个node均在本地有mysql程序和配置文件(若NFS上存放mysql程序、mysql数据及配置文件,如何实现让mysql到共享存储上读配置文件?使用选项指定)
  注:mysql读取配置文件的先后次序:/etc/my.cnf-->/etc/mysql/my.cnf-->$MYSQL_HOME/my.cnf-->--default-extra-file=/PATH/TO/FILE-->~/.my.cnf(让mysqld服务器端程序接受选项(--default-extra-file=/PATH/TO/FILE),同时将前面几处位置的不提供配置文件即可)
  OCF格式的RA(可灵活指定很多参数,来配置脚本的工作属性)
  LSB格式的RA(脚本固定,内设好的,不能提供参数)此例使用的是LSB格式的脚本
  注:corosync中专门为mysql提供了RA,这个RA可接受参数用于告知mysql程序配置文件在哪
  注意nfs输出时的UID、GID(mysql访问数据,都要是mysql用户,mysql组,要对相应目录有读写权限,而且此例中有两个node,这两个node的mysql用户和组的UID、GID最好一样,若不一样就得配置nfs在输出时文件属性中要有这两个node的UID、GID)
  mysql数据最好放在LVM上,既方便扩展又方便备份,LVM应在nfs所属的服务器上创建
  二、操作:
http://s5.运维网.com/wyfs02/M00/77/10/wKiom1ZiNbzxp9ExAAA9NVBeyI0640.jpg
  注:在同一时刻,node1和node2仅一台提供服务,若当前提供服务的node1-mysql-server挂掉,另一台node2接替其工作
  node3-side:
  本例是单独拿出一块磁盘制作LVM
  #fdisk /dev/sdb(大小+5G,分区类型8e)
  #partprobe /dev/sdb
  #pvcreate /dev/sdb1
  #vgcreate myvg/dev/sdb1
  #lvcreate -L5G-n mydatamyvg
  #lvs
  #mke2fs -j/dev/myvg/mydata
  #groupadd -g3306mysql
  #useradd -u3306-g mysql-s/sbin/nologin -Mmysql
  #mkdir /mydata
  #vim /etc/fstab
  /dev/myvg/mydata/mydata ext3defaults00
  #mount -a
  #mount
  #mkdir /mydata/data
  #chown -Rmysql:mysql/mydata/data
  #vim /etc/exports
  /mydata/data192.168.41.129/24(no_root_squash,rw)192.168.41.130/24(no_root_squash,rw)(此处一定要有no_root_squash,默认生效的是root_squash是将root转为anonymous)
  #exportfs -arv
  node1-side:
  #groupadd -g3306mysql
  #useradd -u3306-g mysql-s/sbin/nologin -Mmysql
  #mkdir /mydata
  #mount -tnfs192.168.41.128:/mydata/mydata
  #usermod -s/bin/bashmysql(测试下mysql用户是否对该目录有写权限)
  #su -mysql
  #cd /mydata/data
  #touch test.txt
  #ll
  #usermod -s/sbin/nologinmysql
  #tar xfmysql-5.5.45-linux2.6-i686.tar.gz -C/usr/local/
  #cd /usr/local
  #ln -svmysql-5.5.45-linux2.6-i686/mysql
  #cd mysql
  #ll
  #chown -Rroot:mysql./*
  #mount -tnfs192.168.41.128:/mydata/mydata
  #scripts/mysql_install_db--user=mysql --datadir=/mydata/data
  #ll /mydata/data
  #cp support-files/my-large.cnf /etc/my.cnf
  #vim /etc/my.cnf
  
  datadir = /mydata/data
  innodb_file_per_table = 1
  #cp support-files/mysql.server /etc/init.d/mysqld
  #chkconfig --addmysqld
  #chkconfig mysqldoff
  #chkconfig --listmysqld
  #service mysqldstart
  #/usr/local/mysql/bin/mysql
  >SHOW DATABASES;
  >CREATE DATABASEmydb;
  >SHOW DATABASES;
  >GRANT ALLON*.* TO‘root’@’%’IDENTIFIED BY‘redhat’;
  >FLUSH PRIVILEGES;
  >\q
  #service mysqldstop
  #umount /mydata
  #scp /etc/init.d/mysqld node2:/etc/init.d/
  #scp /etc/my.cnfnode2:/etc/
  node2-side:
  配置与node1-side相同,node2上不用执行初始化,最后查看有无node1创建的mydb库
  #hb_gui &
  添加如图组和资源:
  add new item:-->选group-->ID:mysql-->resourceID:mysqlip-->选IPaddr-->添加如图ip、nic、cidr_netmask
  add new item:-->选native-->resourceID:mysqlstore-->选filesystem-->添加如图device、directory、fstype
  add new item:-->选native-->resourceID:mysqld-->选mysqld
http://s2.运维网.com/wyfs02/M01/77/10/wKiom1ZiNdXSZXUdAACV_nkor2E691.jpg
http://s1.运维网.com/wyfs02/M01/77/0F/wKioL1ZiNkGR3ic6AACYdBnVk_U607.jpg
  

  在组上右键start
  测试:
  node3-side:
  #mysql -uroot-p -h192.168.41.222
  >SHOW DATABASES;
  >USE mydb;
  >CREATE TABLEtesttb(id intunsignednot nullauto_incrementprimary key,namechar(20));
  >SHOW TABLES;
  在图形界面的窗口上,右键node2点standby,在node3上再试登录mysql看是否正常
http://s2.运维网.com/wyfs02/M02/77/0F/wKioL1ZiNn3hf4ZVAACR-whDPZ0462.jpg
  

  




页: [1]
查看完整版本: IV 10 MySQL+heartbeat+nfs