当前位置: 首页 > news >正文

centos 7.2部署cloudstack4.9 ceph0.94

版本:
系统:centos 7.2
ceph : 0.94
cloudstack : 4.92
mysql :5.72
 
6台机器:
192.168.1.212 :cloudstack-management  ,monitor
192.168.1.165 :storage
192.168.1.183 :cloudstack-agent,monitor,osd
192.168.1.127 :cloudstack-agent,monitor,osd
192.168.1.151 :cloudstack-agent,osd
192.168.1.249 :cloudstack-agent,osd
 
系统环境:
一定要关闭selinux,在/etc/selinux/config修改
iptables,firewalld 实验可以关掉,线上需要添加规则
安装系统的时候最好把Development Tools安装上去
修改主机名如下,其他节点类似
 
hostnamectl set hostname='mgmt.ptecloud.com'
 
因为没有dns所以修改hosts
 

cat >> /etc/hosts << EOF

192.168.1.212 mgmt.ptecloud.com  

192.168.1.165 secondary.ptecloud.com

192.168.1.183 nodea1.ptecloud.com

192.168.1.249 nodeb1.ptecloud.com

192.168.1.127 nodeb2.ptecloud.com

192.168.1.151 nodea2.ptecloud.com

EOF

上面没有添加短域名,通过sed修改,修改完成之后使用hostname --fqdn
 
sed -ri 's/(\<[[:alpha:]].*\>).ptecloud.com/& \1/g' /etc/hosts
 
安装数据库
 
rpm -ivh mysql57-community-release-el7-11.noarch.rpm   ##在官网上下载的yum仓库安装包
repo仓库如下,如果想用哪个把enabled改为1就可以,不用改为0
 
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
# Enable to use MySQL 5.5
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
[mysql-tools-preview]
name=MySQL Tools Preview
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
[mysql-cluster-7.5-community]
name=MySQL Cluster 7.5 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
[mysql-cluster-7.6-community]
name=MySQL Cluster 7.6 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
 
下面就是安装
 
yum clean all
yum install -y mysql-community-server
systemctl start mysqld
grep 'temporary password' /var/log/mysqld.log  ##5.7 初始密码在mysqld.log中
mysql_secure_installation
cat >> /etc/my.cnf <<EOF
binlog_ignore_db=mysql
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
binlog-format = 'ROW
EOF
systemctl restart mysqld
 
mysql安装完成,可以进入mysql看下是否正常
 
部署:ceph
ceph中文网上有快速部署步骤可以借鉴
ceph组件较之前的文件系统有所区别,建议先学习查看一下
http://docs.ceph.org.cn/start/quick-start-preflight/
 
ceph部署环境
 
sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
 
sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
 
 
配置ceph-deploy的安装目录
 
[ceph-deploy]
name=ceph-deploy
baseurl=https://mirrors.aliyun.com/ceph/archive/rpm-firefly/el7/noarch/
enabled=1
gpgcheck=0
 
然后安装ceph-deploy
 
yum update && yum install ceph-deploy
 
配置ntp同步;
如果不能连接公网的话可以自己搭建一个ntp服务器,能连接公网的话可以创建一个计划任务,没5分钟同步一次
 
crontab -e
*/5 * * * * /usr/sbin/ntpdate 1.asia.pool.ntp.org &> /dev/null
*/5 * * * * /usr/sbin/hwclock -w
 
在所有节点上添加openssh-server
 
yum install openssh-server
 
创建cephuser
 
官网建议使用不使用root用户安装ceph
所以在各节点上创建用户:
 
useradd ceph-user && echo "ceph-user" | passwd --stdin ceph-user
 
修改sudo权限
 
echo "ceph-user ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ceph-user
chmod 0440 /etc/sudoers.d/ceph-user
 
设置免密码ssh登入
 
在ceph-user账号下执行
 
ssh-keygen     ## 全部回车
ssh-copy-id secondary
ssh-copy-id nodea1
ssh-copy-id nodea2
ssh-copy-id nodeb1
ssh-copy-id nodeb2
 
在ceph-user用户下修改~/.ssh/config文件,可以免delpoy的时候指定用户,这边config文件没有的话,创建之后注意下权限,后面可能会有报错
 
Host secondary
   Hostname secondary
   User ceph-user
Host nodea1
   Hostname nodea1
   User ceph-user
Host nodea2
   Hostname nodea2
   User ceph-user
Host nodeb1
   Hostname nodeb1
   User ceph-user
Host nodeb2
   Hostname nodeb2
   User ceph-user
 
iptables或者防火墙一定要注意还有selinux,这个也是。
 
部署ceph
 
su - ceph-user
mkdir my-cluster
cd my-cluster/
ceph-deploy new mgmt nodea1 nodeb2
 
在这个文件夹下会生成两个文件,在配置文件中添加
 
osd pool default size = 2
public network = {ip-address}/{netmask}
 
ceph-deploy中会自动安装ceph的程序,可能会提升报错,可以看下安装的包的名称和版本,在各大yum源镜像中找到对应的版本自行安装。我部署的这个是ceph0.94,对应的yum源如下
 
[ceph-install]
name=ceph-install
baseurl=https://mirrors.aliyun.com/ceph/rpm/el7/x86_64/
enabled=1
gpgcheck=0
 
每个节点都需要添加,ceph-deploy需要安装的是三个包,可以在ceph-deploy的输出中看到
 
yum -y install yum-plugin-priorities
yum install -y epel-release
yum install -y ceph ceph-radosgw
 
在每个节点安装完成后,在主部署节点执行,注意如果一个节点你只想做监控节点也是要安装的
 
ceph-deploy install mgmt nodea1 nodea2 nodeb1 nodeb2
 
初始化换monitor,收集秘钥,执行完成后可以看到有四个秘钥换
 
ceph-deploy mon create-initial
 
下面是添加osd,我这边没有足够的条件使用硬盘做osd节点,用的是目录,先创建好目录,先准备osd节点
 
ceph-deploy osd prepare nodea1:/var/ceph nodea2:/var/ceph nodeb1:/var/ceph nodeb2:/var/ceph
 
激活osd节点
 
ceph-deploy osd activate nodea1:/var/ceph nodea2:/var/ceph nodeb1:/var/ceph nodeb2:/var/ceph
 
用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。
 
ceph-deploy admin mgmt nodea1 nodea2 nodeb1 nodeb2
 
确保对秘钥环有权限
 
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
 
检查集群健康
 
ceph health
 
下面开始安装cloudstack
我这边使用的是4.9版本,因为4.10起不来,无法解决所以降版本使用4.92,yum源如下
 
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/centos7/4.9/
enabled=1
gpgcheck=0
 
cloudstack官网上有安装步骤,可以参考
http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/4.9/qig.html
 
安装管理节点
 
yum install -y cloudstack-management
 
安装数据库连接器
 
[mysql-connectors-community]
name=MySQL Community connectors
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/$releasever/$basearch/
enabled=1
gpgcheck=1
 
rpm --import http://repo.mysql.com/RPM-GPG-KEY-mysql
 
yum install mysql-connector-python
 
初始化数据库
 
cloudstack-setup-databases cloud:password@localhost --deploy-as=root:passwd
cloudstack-setup-databases cloud:Cloud_0510@localhost --deploy-as=root:123456    ##5.7是密码等级比较高所以密码设置的复杂一些
安装完成后会提示有successfully
 
创建存储
在规划的存储分区下
 
mkdir -p /var/ceph/primary
mkdir /var/ceph/secondary
yum install -y nfs-utils
 
vim /etc/exports
/var/ceph/primary *(rw,async,no_root_squash)
/var/ceph/secondary *(rw,async,no_root_squash)
 
vim /etc/sysconfig/nfs
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
 
systemctl restart rpcbind
systemctl restart nfs
systemctl enable rpcbind
systemctl enable nfs
 
因为我这边关闭了iptables,如果需要的话,添加相应的规则,复制官网的如下
 
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
 
导入系统虚拟机模板,官网上有 http://cloudstack.apt-get.eu/systemvm/,下载对应的模板,4.9到4.6 用4.6 那个就可以,4.10的需要用4.10的模板,启动失败的原因,怀疑为模板版本不同导致。
 
mount -t nfs 192.168.1.165:/var/ceph/secondary /mnt/secondary/
cd /usr/share/cloudstack-common/scripts/storage/secondary/
./cloud-install-sys-tmplt -m /mnt/secondary/ -f /root/cloudstack/systemvm64template-4.6.0-kvm.qcow2.bz2 -h kvm -F  ##安装成功后Successfully提示
 
启动cloudstack
 
cloudstack-setup-management --tomcat7    ###初始化管理节点   这边不加--tomcat7 会报错,需要生成一个软连接。
systemctl resetart management
 
安装agent节点
 
hostname --fqdn    ##主机名是否生效
yum install cloudstack-agent
vim /etc/libvirt/qemu.conf   #添加下面内容
vnc_listen=0.0.0.0
 
vim /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16059"
auth_tcp = "none"
mdns_adv = 0
 
vim /etc/sysconfig/libvirtd
LIBVIRTD_ARGS="--listen"
 
systemctl restart libvirtd
 
lsmod | grep kvm                          ##查看内核是否加载kvm模块
kvm_intel              55496  0
kvm                  337772  1 kvm_intel
 
 
节点开启iptables的注意添加响应规则
初始化agent
 
cloudstack-setup-agent
填入management的ip
zone、pod、cluster都填1
 
登入配置cloudstack
初始化用户名密码是 admin/password
里面会有初始化zone、pod、来宾网络、cluster、选择hypervisor、添加主机、添加主存储、添加二级存储等  
网关就填物理网络的网关,提供点和来宾的ip地址池不能重合,添加主机的用户名和密码最好是root的后面的存储一般是nfs的。
 
添加ceph为主存储
详见 http://docs.ceph.org.cn/rbd/rbd-cloudstack/
因为我的osd比较少,所以用的gp比较少
 
ceph osd pool create cloudstack 128 128
创建用户
 
ceph auth get-or-create client.cloudstack mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=cloudstack'
 
添加主存储,注意提供程序选择DefaultPrimary
协议选择 :”rbd”
Rados monitor 选择 ceph 集群的任意节点即可,最好填写 monitor 选举中的 leader
Rados Pool 选择刚才新建的池: cloudstack
Rados User 选择刚才新建的用户 : cloudstack
Rados Sercert 选择刚才输出的 key
 
 
 
 ######
部署的时候遇到一些坑,多看看日志分析。
mysql 5.7  group by 有报错
http://www.cnblogs.com/jim2016/p/6322703.html
需要过这个问题,是在cloudstackweb页面配置完成启动的时候,一直在创建系统虚拟机阶段,日志发现一直有报db错误,
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'cloud.i.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
按照上面博客的内容,重置变量kill掉数据库中cloudstack的processlist,日志报错消失。
2017-11-23 13:50:32,508 ERROR [c.c.c.ClusterManagerImpl] (Cluster-Heartbeat-1:ctx-f54aed32) (logid:c80dbc8f) Unexpected exception in cluster heartbeat
 这个报错可能也是于数据库相关,重启数据库后恢复正常。
ceph是高度依赖ntp的,时间不同步会有报错,进行问ntp同步后,重启mon,就会恢复正常。
 
 

转载于:https://www.cnblogs.com/Nvax/p/7890130.html

相关文章:

  • FireFox 7/8 上传前预览图片
  • sqoop: mysql to hive
  • 六、CentOS 6.5 下Nginx的配置
  • JS判断浏览器类型及版本
  • 【框架学习与探究之依赖注入--Autofac】
  • 由windows的Alt+Tab键联想到的数据结构
  • 原生js解决简单轮播图的切换
  • MDCC印象之二:芒果的味道
  • ORA-00600: internal error code, arguments: [kgl-no-mutex-held]
  • exp之compress到底在压缩什么
  • 数据库的独立子查询以及数据的删除、更新和建立视图的笔记
  • 让每次弹出的div随页面的卷动而保持相对位置不变
  • 课后作业-阅读任务-阅读笔记-4
  • connect by level语法的理解
  • echarts 重新渲染(重新绘制,重新加载数据)等
  • 收藏网友的 源程序下载网
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • HTTP中的ETag在移动客户端的应用
  • Intervention/image 图片处理扩展包的安装和使用
  • Java读取Properties文件的六种方法
  • Js基础知识(四) - js运行原理与机制
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • React-redux的原理以及使用
  • uni-app项目数字滚动
  • 笨办法学C 练习34:动态数组
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 创建一个Struts2项目maven 方式
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前端技术周刊 2019-01-14:客户端存储
  • 巧用 TypeScript (一)
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 写代码的正确姿势
  • 怎么把视频里的音乐提取出来
  • 自定义函数
  • 06-01 点餐小程序前台界面搭建
  • 阿里云移动端播放器高级功能介绍
  • 湖北分布式智能数据采集方法有哪些?
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #define、const、typedef的差别
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (¥1011)-(一千零一拾一元整)输出
  • (1)SpringCloud 整合Python
  • (ibm)Java 语言的 XPath API
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (转) Face-Resources
  • (转)Linq学习笔记