标签:cloudstack glustarfs ctdb nfs
一、环境介绍:
Cloudstack-Management:10.12.0.10
Gluster-Management:10.12.0.11
Node:10.12.0.12
Node:10.12.0.13
Node:10.12.0.14
Node:10.12.0.15
Node:10.12.0.16
Node:10.12.0.17
Node:10.12.0.18
Node:10.12.0.19
Node:10.12.0.20
Node:10.12.0.21
Node:10.12.0.22
Node:10.12.0.23
Node:10.12.0.24
Node:10.12.0.25
Node:10.12.0.26
二 、安装:
首先搭建Glusterfs存储环境(10.12.0.11):
Glusterfs 分部式存储搭建:
wget -P /etc/yum.repos.d/ http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
yum -y install epel-release.noarch
yum clean all
yum makecache
yum -y install glusterfs glusterfs-server
添加服务并启动:
chkconfig glusterd on
service glusterd start
创建卷目录
mkdir -p /home/primary (建立用于主存的文件目录)
mkdir -p /home/secondary (建立用于辅存的文件目录)
mkdir -p /home/ctdb (建立用于ctdb的文件目录)
sed -i "/OUTPUT/a -A INPUT -s 10.12.0.0/16 -j ACCEPT" /etc/sysconfig/iptables
添加Gluster节点:
gluster peer probe 10.12.0.12
gluster peer probe 10.12.0.13
gluster peer probe 10.12.0.14
gluster peer probe 10.12.0.15
gluster peer probe 10.12.0.16
gluster peer probe 10.12.0.17
gluster peer probe 10.12.0.18
gluster peer probe 10.12.0.19
gluster peer probe 10.12.0.20
gluster peer probe 10.12.0.21
gluster peer probe 10.12.0.22
gluster peer probe 10.12.0.23
gluster peer probe 10.12.0.24
gluster peer probe 10.12.0.25
gluster peer probe 10.12.0.26
查看节点状态:
gluster peer status
gluster volume info
创建虚拟卷:
gluster volume create 虚拟卷名 stripe 3 replica 2 10.12.0.12:/home/primary
{
distribute分布式, stripe条带式, replica副本式,可叠加组合
“replica 2”表示每个文件保存为两个副本,最少需要2台服务器。
“stripe 2 replica 2”表示每个文件切成条保存到2个地方,且保存为两个副本,最少需要4台服务器。
如果卷目录位于根分区下,后面要加force
}
例:
gluster volume create primary stripe 8 replica 2 10.12.0.11:/home/primary/ 10.12.0.12:/home/primary/ 10.12.0.13:/home/primary/ 10.12.0.14:/home/primary/ 10.12.0.15:/home/primary/ 10.12.0.16:/home/primary/ 10.12.0.17:/home/primary/ 10.12.0.18:/home/primary/ 10.12.0.19:/home/primary/ 10.12.0.20:/home/primary/ 10.12.0.21:/home/primary/ 10.12.0.22:/home/primary/ 10.12.0.23:/home/primary/ 10.12.0.24:/home/primary/ 10.12.0.25:/home/primary/ 10.12.0.26:/home/primary/
gluster volume create secondary stripe 8 replica 2 10.12.0.11:/home/secondary/ 10.12.0.12:/home/secondary/ 10.12.0.13:/home/secondary/ 10.12.0.14:/home/secondary/ 10.12.0.15:/home/secondary/ 10.12.0.16:/home/secondary/ 10.12.0.17:/home/secondary/ 10.12.0.18:/home/secondary/ 10.12.0.19:/home/secondary/ 10.12.0.20:/home/secondary/ 10.12.0.21:/home/secondary/ 10.12.0.22:/home/secondary/ 10.12.0.23:/home/secondary/ 10.12.0.24:/home/secondary/ 10.12.0.25:/home/secondary/ 10.12.0.26:/home/secondary/
启动卷:
gluster volume start primary
gluster volume start secondary
设置访问权限:
gluster volume set primary auth.allow 10.12.0.* (设置允许访问的地址,如果有多个地址可以用逗号连接,不设置,默认允许所有)
gluster volume set secondary auth.allow 10.12.0.*
搭建ctdb来使用nfs共享:
安装ctdb(此操作也在:10.12.0.11上):
yum install nfs-utils
yum install ctdb
创建本地挂载Glusterfs的secondary卷目录并挂载:
mkdir /secondary
mount -t glusterfs 10.12.0.11:/secondary /secondary
修改开机自动挂载:在/etc/fstab的后面一行加入以下:
vim /etc/fstab
192.168.30.239:/secondary /secondary glusterfs defaults 0 0
创建ctdb配置文件:
1、创建nfs文件:
mv /etc/sysconfig/nfs /etc/sysconfig/nfs.bak
vim /secondary/nfs
CTDB_MANAGES_NFS=yes
NFS_TICKLE_SHARED_DIRECTORY=/secondary/nfs-tickles
STATD_PORT=595
STATD_OUTGOING_PORT=596
MOUNTD_PORT=597
RQUOTAD_PORT=598
LOCKD_UDPPORT=599
LOCKD_TCPPORT=599
STATD_SHARED_DIRECTORY=/secondary/lock/nfs-state
NFS_HOSTNAME="Node11.test.com"
STATD_HOSTNAME="$NFS_HOSTNAME -P "$STATD_SHARED_DIRECTORY/$PUBLIC_IP" -H /etc/ctdb/statd-callout -p 97"
RPCNFSDARGS="-N 4"
2、创建NFS配置文件:
ln -s /secondary/nfs /etc/sysconfig/nfs
3、创建NFS共享目录配置文件:
vi /secondary/exports
/secondary *(fsid=1235,insecure,rw,async,no_root_squash,no_subtree_check)
rm -rf /etc/exports
ln -s /secondary/exports /etc/exports
添加防火墙规则:
vim /etc/sysconfig/iptables
-A INPUT -s 10.12.0.0/16 -m state --state NEW -p udp --dport 111 -j ACCEPT -A INPUT -s -A INPUT -s -A INPUT -s -A INPUT -s -A INPUT -s -A INPUT -s -A INPUT -s -A INPUT -s -A INPUT -s -A INPUT -s
创建ctdb配置文件,同样是放到存储卷里面,给其他服务器共用:
vim /secondary/ctdb
CTDB_RECOVERY_LOCK=/secondary/lockfile
CTDB_PUBLIC_INTERFACE=eth0
CTDB_PUBLIC_ADDRESSES=/secondary/public_addresses
CTDB_MANAGES_NFS=yes
CTDB_NODES=/secondary/nodes
CTDB_DEBUGLEVEL=ERR
(注;ctdb可能是对网桥模式有干扰,建议使用“直连”网卡:即:eth0-3)
mv /etc/sysconfig/ctdb /etc/sysconfig/ctdb.bak
ln -s /secondary/ctdb /etc/sysconfig/ctdb
创建ctdb虚拟地址(VIP):
vim /secondary/public_addresses
10.12.0.10/24 eth0
创建ctdb节点文件:
vim /secondary/nodes
10.12.0.11
10.12.0.12
10.12.0.13
10.12.0.14
10.12.0.15
10.12.0.16
10.12.0.17
10.12.0.18
10.12.0.19
10.12.0.20
10.12.0.21
10.12.0.22
10.12.0.23
10.12.0.24
10.12.0.25
10.12.0.26
设置开机启动并启动:
chkconfig ctdb on
chkconfig nfs off
/etc/init.d/ctdb start
查看ctdb信息:
ctdb status
ctdb ping -n all
ctdb ip
Public IPs on node 1
10.10.10.15 node[0] active[] available[eth0] configured[eth0] (显示10.10.10.15这个接口地址正工作在node0上)
ctdb pnn
PNN:1 (自己是node1)
以下操作是在所有节点服务器上操作(即:12---26)
yum -y install nfs-utils
yum -y install ctdb
mkdir /secondary
mount -t glusterfs 10.12.0.11:/secondary /secondary
修改开机自动挂载:在/etc/fstab的后面一行加入以下:
vim /etc/fstab
192.168.30.239:/secondary /secondary glusterfs defaults 0 0
mv /etc/sysconfig/nfs /etc/sysconfig/nfs.bak
ln -s /secondary/nfs /etc/sysconfig/nfs
rm -rf /etc/exports
ln -s /secondary/exports /etc/exports
mv /etc/sysconfig/ctdb /etc/sysconfig/ctdb.bak
ln -s /secondary/ctdb /etc/sysconfig/ctdb
设置开机启动并启动:
chkconfig ctdb on
chkconfig rpcbind on
chkconfig nfs off
/etc/init.d/ctdb start
最后再重启下10.12.10.11这台机器的ctdb:
/etc/init.d/ctdb restart
ctdb status
ctdb ping -n all
ctdb ip
ctdb pnn
使用ip r查看下是否有VIP:
ip r
测试:
找任何一台机器,mount上后创建一个文件,查看其它机器上是否已经写入;
例:
mount -t nfs 10.12.0.10:/secondary /mnt
touch /mnt/a.txt
在其它节点(12--26)上安装操作:
wget -P /etc/yum.repos.d/ http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
yum -y install epel-release.noarch
yum clean all
yum makecache
yum -y install glusterfs glusterfs-server
chkconfig glusterd on
service glusterd start
在 Cloudstack-Management:10.12.0.10上安装:
网络配置
使用脚本脚本修改:
脚本下载地址:http://pan.baidu.com/s/1pLaNjZ1
或 使用以下方式修改:
cd /etc/sysconfig/network-scripts/
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-cloudbr0
DEVICE="cloudbr0"
BOOTPROTO="static"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
IPADDR=172.16.0.2
NETMASK=255.255.0.0
GATEWAY=172.16.0.1
DNS1=223.5.5.5
EOF
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-cloudbr1
DEVICE="cloudbr1"
BOOTPROTO="static"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
IPADDR=10.10.0.2
NETMASK=255.255.0.0
EOF
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-cloudbr2
DEVICE="cloudbr2"
BOOTPROTO="static"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
IPADDR=10.11.0.2
NETMASK=255.255.0.0
EOF
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-cloudbr3
DEVICE="cloudbr3"
BOOTPROTO="static"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
IPADDR=10.12.0.2
NETMASK=255.255.0.0
EOF
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE=cloudbr0
EOF
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE="Ethernet"
ONBOOT="yes"
NM_CONTROLLED="yes"
BOOTPROTO="static"
BRIDGE="cloudbr1"
EOF
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
TYPE="Ethernet"
ONBOOT="yes"
NM_CONTROLLED="yes"
BOOTPROTO="static"
BRIDGE="cloudbr2"
EOF
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE="eth3"
TYPE="Ethernet"
ONBOOT="yes"
NM_CONTROLLED="yes"
BOOTPROTO="static"
BRIDGE="cloudbr3"
EOF
chkconfig network on
service network restart
(注:以上这些命令需要在每个Node节点上去操作,桥接网卡信息,因为cloudstack要求必须桥接网卡)
主机名
Cloudstack要求正确设置主机名,如果安装时您接受了默认选项,主机名为localhost.localdomain,输入如下命令可以进行验证
hostname --fqdn
在此处将返回:
localhost
为了纠正这个问题,需设置主机名,通过编辑/etc/hosts 文件,将其更改为类似如下内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.0.2 srvr1.cloud.priv
更改配置文件后,重启网络服务:
service network restart
通过hostname –fqdn命令重新检查主机名,并确认返回了正确的FQDN
SELinux
当前的CloudStack需要将SELinux设置为permissive才能正常工作,您需要改变当前配置,同时将该配置持久化,使其在主机重启后仍然生效。
在系统运行状态下将SELinux配置为permissive需执行如下命令:
setenforce 0
为确保其持久生效需更改配置文件/etc/selinux/config,设置为permissive,如下例所示:
# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=permissive# SELINUXTYPE= can take one of these two values:# targeted - Targeted processes are protected,# mls - Multi Level Security protection.SELINUXTYPE=targeted
为了同步云平台中主机的时间,需要配置NTP,但NTP默认没有安装。因此需要先安装NTP,然后进行配置。通过以下命令进行安装:
yum -y install ntp
实际上默认配置项即可满足的需求,仅需启用NTP并设置为开机启动,如下所示:
chkconfig ntpd on service ntpd start
接下来进行CloudStack管理节点和相关工具的安装。
首先安装MySQL,并对它进行配置,以确保CloudStack运行正常。
运行如下命令安装:
yum -y install mysql-server
MySQL安装完成后,需更改其配置文件/etc/my.cnf。在[mysqld]下添加下列参数:
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format=‘ROW‘
正确配置MySQL后,启动它并配置为开机自启动:
service mysqld start
chkconfig mysqld on
(为安全起见,建议修改mysql的root密码,默认为空)
首先下载Cloudstack的RPM包:
下载地址:
http://pan.baidu.com/s/1eRCdaYu
下载完成后,完速的安装目录为:
如果安装包不正确,请留言索取正确的安装包!
现在将要开始安装管理服务器。执行以下命令:
yum -y localinstall cloudstack-awsapi-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-cli-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-common-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-management-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-usage-4.4.1-NONOSS_3.el6.x86_64.rpm
在程序执行完毕后,需初始化数据库,通过如下命令和选项完成:
cloudstack-setup-databases cloud:password@localhost --deploy-as=root
当该过程结束后,您应该可以看到类似信息:”CloudStack has successfully initialized the database.”。
数据库创建后,最后一步是配置管理服务器,执行如下命令:
cloudstack-setup-management
CloudStack通过一系列系统虚拟机提供功能,如访问虚拟机控制台,如提供各类网络服务,以及管理辅助存储的中的各类资源。该步骤会获取系统虚拟机模板,用于云平台引导后系统虚拟机的部署。
然后需要下载系统虚拟机模板,并把这些模板部署于刚才创建的辅助存储中;管理服务器包含一个脚本可以正确的操作这些系统虚拟机模板:
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \-m /secondary \-f /soft/systemvm64template-4.4.1-7-kvm.qcow2.bz2 \
-h kvm -F
至此,Management就已经安装完成,以下在所以的Node节点上操作:
yum -y localinstall cloudstack-common-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-agent-4.4.1-NONOSS_3.el6.x86_64.rpm
启动服务:
/etc/init.d/cloudstack-agent start
本文出自 “Elephant” 博客,请务必保留此出处http://zlyang.blog.51cto.com/1196234/1762920
Cloudstack+Glusterfs+Kvm 集群(笔记)
标签:cloudstack glustarfs ctdb nfs
原文地址:http://zlyang.blog.51cto.com/1196234/1762920