Corosync/openais和NFS服务器实现MySQL的高可用

nfs的建立

为了将来方便使用lvm的方式创建

fdisk /dev/sda 创建2个分区,然后把它们创建成逻辑卷的方式

这里只要注意两点别忘即可,一是注意给出分区类型,二是注意被忘记分完去后,记住使用partprobe命令.

我们这里创建的是/dev/sda5和/dev/sda6

下面就是创建lvm了.

pvcreate /dev/sda{5,6} 注意用这种短格式,linux总是这样,很好.

vgcreate myvg /dev/sda{5,6}

lvcreate -n mydata -L 20G myvg       注意这里的20G刚才规划的容量

下面的步骤就是格式化这个逻辑卷.

mke2fs -j /dev/myvg/mydata

因为我们这个是nfs共享存储,因此我们必须把它挂载到一个目录下,然后还要把它共享出去,让另外两个高可用的mysql服务器能够访问他,当然这个共享的目录必须要让mysql用户访问他时有读写权限,否则的话人家怎么读写你里面的数据,这里我们必须明确,这三个的用户id必须一样.因此下面这一步先创建

在nfs服务器上 mkdir /sharedata

在另外两个服务器各自创建用户

useradd -r -u 300 mysql    (这里只要注意,三个服务器上的id ,用户必须一样)

接下来先挂载nfs上的共享目录到lvm上.

mount /dev/myvg/mydata  /shareddata 而且要让他下次开机时自动挂载,因此需要在/etc/fstab文件中添加下边这一行.

/dev/myvg/mydata             /sharedata                   ext3         defaults                   0 0

chown -R mysql.mysql  /sharedata

接下来的动作就是要让这个共享的目录共享出来,让人家能够访问得到

vim   /etc/exports 在里边写入下边这一行即可

/sharedata              172.16.100.11(rw,no_root_squash)    172.16.100.12(rw,no_root_squash)

启动nfs服务

service nfs start

chkconfig    nfs on

iptables -L (察看iptables有没有组织这个共享)

 

接下来的动作就很顺理成章就是在两个mysql服务器上安装mysql数据库,当然首先你得知道mysql包哪里有,然后下载到你本机,然后还要解压哈哈.怎么解压,你问我怎么解压,你可以找个地方去撞墙了.

tar xf mysql-5.5.24-linux2.6-i686.tar.gz -C /usr/local

cd /usr/local

ln -sv mysql-5.5.24-linux2.6-i686 mysql

su -mysql (这里一定要注意,我们登陆使用的是root,但是它为了保证数据库的安全,系统自动把以root用户的身份登陆的映射成了nobodyyonghu,如果我们不这个步骤,下边的命令便不能用.)

cd mysql

chown -R mysql.mysql .

scripts/mysql_install_db --user=mysql --datadir=/data/mydata

chown-R root .

cp  support-files/my-large.cnf  /etc/my.cnf

打开这个配置文件,然后稍作修改就行

 thread_concurrency = 2 默认是8,然后在他下面加一行

datadir = /data/mydata   注意各个语法,=号前后都有空格.

然后就是把启动脚本放到启动的地方

cp  support-files/mysql.server  /etc/rc.d/init.d/mysqld

别忘了给他个权限 chmod+x /etc/rc.d/init.d/mysql

/etc/rc.d/init.d/mysqld start

以上的操作仅仅是在一台mysql服务器上的操作,下边是在另一台服务器上的操作步骤,略有不同.

当然首先得解压mysql软件

tar xf mysql-5.5.24-linux2.6-i686.tar.gz -C /usr/local

cd /usr/local (注意这里进入的是这个目录)

ln -sv mysql-5.5.24-linux2.6-i686 mysql

cd mysql

改变属主和属组 chown -R root:mysql .

cp support-files/my-large.cnf /etc/my.cnf

vim /etc/my.cnf(该同样的两个地方)

cp suppot-files/mysql.server /etc/rc.d/init.d/mysqld

chmod +x /etc/rc.d/init.d/mysqld

接下来就是挂在nfs这个共享出来的目录/sharedata.

以上作的也只是一个阶段,接下来我们进行下一个阶段.

下面就是关于高可用方面的资源的相关配置

crm 首先进入配置的地方

configure

primitive vip ocf:heartbeat:IPaddr params ip=172.16.100.1

commit

primitive mynfs (注释:这是给起的名字) ocf:heartbeat:filesystem params device="172.16.100.21:/shareda" diretory="/data/mydata" fstype="nfs" op start  timeout=60s stop timeout=60s 

commit

下边就是定义约束 

primitive mysql lsb:mysqld

colocation mysql_with_mynfs inf:mysql(这一步骤是说明mysql 必须要和mynfs在一起)

commit

mysql 一定要在nfs后启动,因此要定义约束来实现这一个要求.

order mysql_after_mynfs  mandatory: mynfs mysql

commit

整个完成

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux)