推荐配置及版本说明
操作系统版本:CentOS7.5以上,建议7.7
内核版本:4.9以上,建议5.6
cloudstack版本为:4.13
系统模板版本为:4.13.3
qemu-img版本为:2.0以上建议3.9 【仅限管理服务器】
查看、升级指令
1:centOS版本
# 查看centOS版本:
cat /etc/redhat-release
# 升级命令
yum -y upgrade
2:内核版本
cat /proc/version或uname -a
下载地址2【版本为:5.6.15】:链接:https://pan.baidu.com/s/1K92Pt7f8T5dv4yEp_GdHAw
提取码:trs6
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-4.4.185-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-4.4.185-1.el7.elrepo.x86_64.rpm
rpm -qa|grep 'kernel'
awk -F\' '$1=="menuentry" {print $2}' /etc/grub2.cfg
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
cat /etc/default/grub
grub2-set-default 0
grub2-editenv list
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
uname -a
系统中存在的内核版本 当前系统所有内核的启动顺序 配置文件却确保CRUB_DEFAULT=savde grub2-editenv list确认设置成功(saved_entry=0) 查看系统内核
-
运行 awk -F’ ‘$1==“menuentry” {print $2}’ /etc/grub2.cfg 命令报:awk: fatal: cannot open file /etc/grub2.cfg' for reading (No such file or directory) 或者 awk: fatal: cannot open file /boot/grub/grub.conf’ for reading (No such file or directory) 错误。 ** 问题原因:**/boot/grub/grub.conf 和 /boot/grub2/grub.cfg 缺失 **解决办法: **
# /boot/grub/grub.conf 缺失:
yum install -y grub
grub-mkconfig -o /boot/grub/grub.conf
# /boot/grub2/grub.cfg 缺失:
yum install -y grub2
grub2-mkconfig -o /boot/grub2/grub.cfg
- 运行rpm -ivh ker** 报warning: kernel-ml-5.6.15-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY 错误
**问题原因:**验证文件缺失 解决办法:
# rpm方式导入验证文件
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org [在线导入]
rpm --import RPM-GPG-KEY-elrepo.org [下载后导入]
# 验证文件下载
链接:https://pan.baidu.com/s/11PQiHygfae3qHhv7hJWA7g
提取码:nitj
3:qemu升级
管理服务器部署过程
一:更改主机名
1:修改主机名【centos7以上版本】
# centos7 里面修改hostname的方式有所改变
# 修改/etc/hosts和/etc/sysconfig/network两个文件已经不能生效。使用的新命令是
hostnamectl set-hostname [host_name]
# 测试:
uname -a
# 推荐在这步安装net-tools,因为在cloudstack-manager初始化前不安装,之后传给agent端的hostname还是localhost
yum -y install net-tools.x86_64
2:编辑/etc/hosts文件配置主机名&ip解析
# 编辑文件 /etc/hosts
vi /etc/hosts
# 在hosts文件中添加该行- 本机ip 本机主机名 或者 节点服务器ip 节点服务器主机名
192.168.10.101 xialong.manager101
# 若有内部DNS服务器,则只配置本机主机名即可,若无DNS服务器,需要配置所有节点服务器主机名与ip
# 配置结果示例如下
192.168.10.101 xialong.manager101
192.168.10.102 xialong.agent102
192.168.10.103 xialong.agent103
192.168.10.104 xialong.agent104
2:编辑/etc/sysconfig/network 指定主机名
# 编辑文件
vi /etc/sysconfig/network
# 设置HOSTNAME=主机名
HOSTNAME=xialong.manager101
4:重启网络
# 重启网络命令1
service network restart
# 重启网络命令2
systemctl restart network
二:修改系统时区
注意:应尽可能的保持管理主机与节点主机系统时区一致,此处统一为CST时区
- 查看并选择已安装的时区文件 tzselect 命令
# 修改时区为CST时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
三:阿里源配置
1:备份现有源
cd /etc/yum.repos.d
sudo mv CentOS-Base.repo CentOS-Base.repo.bak
2:下载阿里源
# 下载阿里源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 下载epel源
sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all # 清理缓存
yum makecache #重新生成新的缓存
3:查看系统版本
cat /etc/issue 或cat /etc/redhat-release
四:selinux 配置
vi /etc/selinux/config # 目录
SELINUX=permissive # 设置selinux的值为 permissive,表示关闭selinux
shutdown -r now # 重启
五:ntp 的安装
yum -y install ntp # 下载
chkconfig ntpd on # 开机启动
service ntpd start # 启动服务
service ntpd stop # 停止服务
service ntpd restart # 重启动服务
service ntpd status # 查看服务状态
六: nfs的安装:
1:安装nfs
yum -y install nfs-utils rpcbind
2:配置挂载点
vi /etc/exports
/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)
* 号表示开放所有地址段可挂载、可以指定ip地址段
rw – 允许对共享目录进行读写
sync – 实时同步共享目录
no_root_squash – 允许root访问
no_all_squash - 允许用户授权
no_subtree_check - 如果卷的一部分被输出,从客户端发出请求文件的一个常规的调用子目录检查验证卷的相应部分。如果是整个卷输出,禁止这个检查可以加速传输。
3:创建挂载目录
mkdir -p /export/primary
mkdir /export/secondary
4:刷新配置
exportfs -a
showmount -e
5:修改nfs服务器参数
vi /etc/sysconfig/nfs
# 添加如下内容
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
RQUOTAD_PORT=875
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020
RPCNFSDARGS="-N 4"
# rpcnfsdargs="-n 4" 表示禁用nfs4版本的协议
vi /etc/nfsmount.conf
Nfsvers=3
6:启动nfs并配置开机启动
# 添加rpcbind开启启动项
chkconfig rpcbind on
# 添加nfs开机启动项
chkconfig nfs on
# 启动rpcbind
service rpcbind start
# 启动nfs
service nfs start
7:测试挂载
# 测试挂载 将61.141.235.102:/export/secondary挂载到/mnt下
mount -t nfs 61.141.235.102:/export/secondary /mnt
# 查看磁盘挂载信息
df -h
# 取消挂载
umount /mnt
# 测试挂载 将61.141.235.102:/export/primary挂载到/mnt下
mount -t nfs 61.141.235.102:/export/primary /mnt
# 查看磁盘挂载信息
df -h
# 取消挂载
umount /mnt
七:mariadb的安装
1:执行安装命令
yum -y install maria*
注意事项
在确认mariadb数据库软件程序安装完毕成功并启动后先不要立即使用.
为了抱枕该数据库的安全性和正常运转, 需要先对数据库程序进行初始化操作. 这个初始化操作设计以下5个步骤 :
1. 设置root管理员在数据库中的密码值(注意, 该密码并非root管理员在系统中的密码, 这里的密码值默认为空, 可直接回车)
2. 设置root管理员在数据库中放入专有密码(可以不设置).
3. 随后删除匿名账户,并使用root管理员从远程登录数据库, 以确保数据库上运行的业务的安全性.
4. 删除默认的测试数据库, 取消测试数据库的一系列访问权限.
5. 刷新授权列表, 让初始化的设定立即生效.
2:开启mariadb服务
service mariadb start
3:mariadb初始化
mysql_secure_installation
初始化时回车输入y后设置密码一路y设置即可
4:启动mariadb
# 添加为系统启动项
systemctl enable mariadb
# 启动mariadb
systemctl start mariadb
5:授予root用户远程访问权限
# 进入mariadb数据库
mysql -uroot -p123456AABB
# 执行如下命令授予root用户远程访问权限
grant all privileges on *.* to 'root'@'%'identified by '123456AABB' with grant option;
八:cloudstack管理端的安装
1:配置cloudstack源【在线安装】
# 编辑文件
vi /etc/yum.repos.d/cloudstack.repo
# 输入如下内容
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/7/4.13/ # 4.13为版本号
enabled=1
gpgcheck=0
2:使用yum命令安装管理端
# yum在线安装
yum -y install cloudstack-management cloudstack-common
# yum本地安装
yum -y localinstall cloudstack-management-4.13.0.0-1.el7.centos.x86_64.rpm cloudstack-common-4.13.0.0-1.el7.centos.x86_64.rpm
3:数据同步
cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root:123456AABB
# cloud:cloud 为数据库新建账号密码
4:启动管理端
# 初始化管理器
cloudstack-setup-management
# 重启管理器
service cloudstack-management restart
5:上传系统模板
注:尽量在初始化cloudstack之前,4.12、4.13的cloudstack使用4.11.3的模板
# 下载系统模板 地址为:http://cloudstack.apt-get.eu/systemvm/4.11/systemvmtemplate-4.11.2-kvm.qcow2.bz2
# 上传解压系统模板
bunzip2 systemvmtemplate-4.11.3-kvm.qcow2.bz2
# 注册模板至cloudstack管理端
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -f /cloudstack/systemvmtemplate-4.11.3-kvm.qcow2 -h kvm -F
http://www.szfty.net/centos-7.7.1908-x86_64-minimal-1908.iso
http://61.141.235.102/centos-7.7.1908-x86_64-minimal-1908.iso
http://61.141.235.102/systemvmtemplate-4.11.1-kvm.qcow2
http://61.141.235.102/centos-7.7.1908-x86_64-minimal-1908.iso
八:防火墙命令
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开启3306防火墙端口permanent永久生效,没有此参数重启后失效
firewall-cmd --reload # 重新载入
systemctl start firewalld
systemctl restart firewalld
systemctl status firewalld
systemctl stop firewalld
十:注册ISO模板
注册ISO模板时需要将ISO文件上传到文件服务器,由cloudsatck注册成功后主动下载,下面提供两种(httpd和nginx)简易文件服务器的搭建方式,任选一种安装即可:
1:httpd安装配置
1.1:http的安装
# 查看httd是否安装
rpm -qa|grep httpd
# 安装httpd
yum -y install httpd
# 将httpd设置为开机启动项
chkconfig httpd on
# 启动httpd
service httpd start
1.2:httpd的配置
vi /etc/httpd/conf/httpd.conf
取消如下行注释并修改如下内容
ServerName 127.0.0.1:80
新添加如下内容:
AddType text/html .iso
2:nginx的安装
2.1:安装nginx
yum -y install nginx
2.1:配置nginx
- 编辑 /etc/nginx/nginx.conf 文件
# 编辑 /etc/nginx/nginx.conf 配置文件,能够使访问目录
# 修改第一行 user nginx; 为 user root; 设置最高权限,否则无法访问文件
# http大括号内添加如下内容,若已存在,更改即可
autoindex on; # 显示目录
autoindex_exact_size on; # 显示文件大小
autoindex_localtime on; # 显示文件时间
- 删除/usr/share/nginx/html 目录下的所有文件
#删除/usr/share/nginx/html 下的所有文件
rm -rf /usr/share/nginx/html/*
# 开启nginx
systemctl start nginx
# 关闭nginx
systemctl status nginx
# 重启nginx
systemctl restart nginx
# 加入开启启动项
chkconfig nginx on
3:上传系统镜像至nginx下
上传文件至/root目录下
4:注册ISO
# iso注册
secstorage.allowed.internal.sites # 部分开放可填写当前网络所在的网段,如 192.168.1.2/24,全部开放则填写:0.0.0.0/0
节点服务器部署过程
一:更改主机名
1:修改主机名【centos7以上版本】
# centos7 里面修改hostname的方式有所改变
# 修改/etc/hosts和/etc/sysconfig/network两个文件已经不能生效。使用的新命令是
hostnamectl set-hostname [host_name]
# 测试:
uname -a
# 推荐在这步安装net-tools,因为在cloudstack-manager初始化前不安装,之后传给agent端的hostname还是localhost
yum -y install net-tools.x86_64
2:编辑/etc/hosts文件配置主机名&ip解析
# 编辑文件 /etc/hosts
vi /etc/hosts
# 在hosts文件中添加该行- 本机ip 本机主机名
192.168.10.102 xialong.agent102
2:编辑/etc/sysconfig/network 指定主机名
# 编辑文件
vi /etc/sysconfig/network
# 设置HOSTNAME=主机名
HOSTNAME=xialong.agent102
4:重启网络
# 重启网络命令1
service network restart
# 重启网络命令2
systemctl restart network
二:时区修改
注意:应尽可能的保持管理主机与节点主机系统时区一致,此处统一为CST时区
- 查看并选择已安装的时区文件 tzselect 命令
# 修改时区为CST时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
三:selinux 配置
vi /etc/selinux/config # 目录
SELINUX=permissive # 设置selinux的值为 permissive,表示关闭selinux
shutdown -r now # 重启
四:ntp 的安装
yum -y install ntp # 下载
chkconfig ntpd on # 开机启动
service ntpd start # 启动服务
service ntpd stop # 停止服务
service ntpd restart # 重启动服务
service ntpd status # 查看服务状态
五:kvm的安装
注意事项
# 要支持 kvm,intel cpu需要 vmx 或者 amd cpu 需要svm 扩展。
# 查看是否支持kvm
egrep 'vmx|svm' /proc/cpuinfo --color=auto
1: 安装kvm
yum -y install libvirt* qemu*
# 重启
service libvirtd restart
# 查看kvm列表
virsh list
# 查看qemu的版本
/usr/libexec/qemu-kvm -version
2:配置qemu
# 编辑文件
vi /etc/libvirt/qemu.conf
# 取消如下行的注释
vnc_listen=0.0.0.0
3:配置kvm
# 编辑文件
vi /etc/libvirt/libvirtd.conf
# 添加如下行
listen_tls = 0
listen_tcp = 1
tcp_port = "16059"
auth_tcp = "none"
mdns_adv = 0
# 编辑文件
vi /etc/sysconfig/libvirtd
# 取消注释
LIBVIRTD_ARGS="--listen"
4:启动kvm
systemctl restart libvirtd
systemctl enable libvirtd
5:查看是否安装成功
输入以下命令,查看kvm是否正常运行
lsmod | grep kvm
看到以下内容才说明kvm正常运行,如果什么都没有,说明如火你用的真机部署,你的真机服务器没有开启cpu虚拟化,如果用的虚拟机管理软件如virtualbox部署,说明这个软件不支持虚拟机的cpu虚拟化,可更换其他软件如vmware等
kvm_intel 56232 0
kvm 348526 1 kvm_intel
————————————————
如果只有kvm没有kvm_intel,参见安装部署相关问题 5
5:测试kvm
virsh -c qemu+tcp://61.141.235.104/system
五:agent安装
1:安装
# yum本地安装
yum -y localinstall cloudstack-agent-4.13.0.0-1.el7.centos.x86_64.rpm cloudstack-common-4.13.0.0-1.el7.centos.x86_64.rpm
2:配置
# 编辑文件
vi /etc/cloudstack/agent/agent.properties
# 编辑host为管理节点IP
host=61.141.235.103
3:启动agent
cloudstack-setup-agent # 一路回车
# 重启agent服务
service cloudstack-agent restart
查看日志
1:clodstackmanagement管理端日志
/var/log/cloudstack/management/management-server.log
2:agent节点日志
/var/log/cloudstack/agent/agent.log
3:系统日志
var/log/message.log
内部DNS服务器搭建
1:安装bind
# 安装bind软件
yum -y install bind*
1.1:查看软件包
rpm -qa | grep “^bind”
# bind-9.9.4-37.el7.x86_64.rpm:提供了域名服务的主要程序及相关文件
# bind-chroot-9.9.4-37.el7.x86_64.rpm:为BIND服务提供一个伪装的根目录(将/var/named/#chroot/文件夹作为BIND的根目录),以提高安全性。
# bind-libs-9.9.4-37.el7.x86_64.rpm:提供了bind、bind-utils需要使用的函数
# bind-utils-9.9.4-37.el7.x86_64.rpm:提供了对DNS服务器的测试工具程序,如nslookup等
1.2:服务控制
IND软件包安装完毕以后,会自动增加一个名为named的系统服务,
通过脚本文件/etc/init.d/named或systemctl、service(centos6以前)工具都可以控制DNS域名服务的运行。
如:systemctl start named,启动named服务。
1.3:其他:
主要执行程序:
/usr/sbin/named服务脚本:
/etc/init.d/named
默认监听端口:53
2:相关配置
2.1:主配置文件
主配置文件用于设置named服务的全局选项、注册区域及访问控制等各种运行参数 /etc/name.conf /var/named/chroot/etc/named.conf
2.2:区域数据文件
区域数据文件用于保存 DNS 解析记录的数据文件(正向或反向记录) vi /etc/named.conf
安装部署相关问题解决
1:ifconfig 命令不可用
yum -y install net-tools.x86_64
2:wget命令不可用
yum -y install wget
api.allowed.source.cidr.list 0.0.0.0/0,::/0
3:修改时区(Linux系统端)
# 查看时区
date
# 修改时区为上海时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4:卸载clodstack
find / -name cloudstack
rm -rf /etc/cloudstack
rm -rf /var/lib/yum/repos/x86_64/7/cloudstack
rm -rf /var/lib/cloudstack
rm -rf /var/log/cloudstack
rm -rf /var/cache/yum/x86_64/7/cloudstack
rm -rf /var/cache/cloudstack
rm -rf /var/cloudstack
rpm -e cloudstack-common-4.13.0.0-1.el7.centos.x86_64
rpm -e cloudstack-management-4.13.0.0-1.el7.centos.x86_64
rpm -qa|grep cloudstack
netstat -ntlp
5:lsmod |grep kvm没有kvm_intel
# 执行如下命令
# modprobe kvm-intel # 加载kvm模块
# dmesg |grep kvm #查看bios支持
# 出现如下图提示代表支持虚拟化在BIOS中没有开启
# 需要在BIOS界面开启虚拟化 Inter(R) Virtualization => enbled
6:Duplicate column name ‘size’
经过查阅,这是一个BUG,据说CloudStack4.2已经完整修复。 现阶段解决方法:
# cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root:123456AABB -e file -m 123456AABB -k 123456AABB
# cloudstack-setup-management
7:mysql修改密码
use mysql;
UPDATE user SET password=password("123456") WHERE user='root';
# 如果是mysql7.5以上版本,没有password字段
update user set authentication_string=passworD("123456") where user='root';
安装及配置过程中遇到的问题解决
1:创建主机异常
1.1:Can’t add host whose hypervisor type is: KVM into cluster: 13 whose hypervisor type is: None
这个是因为cloudstack总是自己新建一个none类型的集群,手动删除
1.2:Timeout, to wait for the host connecting to mgt svr, assuming it is failed
节点服务器与主机服务器连接不上导致超时,检查网络配置
2:sudo: sorry, you must have a tty to run sudo
在一个终端中调用另一个shell,始终是无法执行的,需要vi /etc/sudoers 注释掉Default requiretty
3:删除资源域物理网络是报错The Physical Network is not deletable because there are networks associated to this physical network
update physical_network set removed=now() where data_center_id=X;
# 其中 data_center_id为你的data_center_id
# 在cloudstack的数据库中,删除一个资源,是将removed设置为当前时间,则认为该资源已经失效(同时在UI界面即无法看到该资源),如果不设置时间,则该资源是有效的。
4:虚拟机控制台无法访问
- 解决方法 判断CPVM IP 80端口是否封堵、判断网络是否正常
若要通过cloudstack访问虚拟机控制台,必须开启CPVM虚拟机所在IP的80端口
使用过程中的出现的相关问题
注意:若要通过cloudstack访问虚拟机控制台,必须开启CPVM虚拟机所在IP的80端口
一:virsh console i-2-3-VM出现如下错误
error: operation failed: Active console session exists for this domain
1:问题原因
如果你之前连接过,没有退出,但是你与宿主机的ssh断了,就会出现这种问题,也就是你之前的连接控制台的连接还存在;
2:解决办法
杀死之前连接的进程即可
ps -ef |grep virsh
kille -9 pshao
二: virsh console i-2-3-VM 无法访问
virsh console i-2-3-VM 卡在如下界面
1:问题原因
2:解决方法
- 修改 /etc/securetty 到最后添加 ttyS0,若已存在,不需添加
- 执行如下更新内核命令参数
grubby --update-kernel=ALL --args="console=ttyS0"
reboot
cloudstack初始化环境
第一步:CloudStack数据库的重新初始化
- 停止CloudStack服务。service cloud-management stop.
- 到mysql里查询baiselect uuid from storage_pool; 删除存储的SR
- 删除数据库drop database cloud; drop database cloud_usage
- 重新部署CloudStack数据库 cloud-setup-databases cloud:password@localhost –deploy-as=root:password
- cloud-setup-management
第二步:初始化主存储和二级存储
|