【大数据实验1】cloudstack安装部署(小白式傻瓜教学)

cloudstack安装部署

  • 0 说明
  • 1 Prerequisites 先决条件
  • 2 Environment 环境
    • 2.0 先看看有没有KVM
    • 2.1 Operating System 操作系统
    • 2.2 Configuring the network 配置网络
    • 2.3 Hostname
    • 2.4 SELinux
    • 2.5 NTP
    • 2.6 Configuring the CloudStack Package Repository 配置CloudStack软件包存储库
    • 2.7 NFS
  • 3 Management Server Installation 管理服务器安装
    • 3.1 Database Installation and Configuration 数据库安装和配置
    • 3.2 MySQL Connector Installation MySQL连接器安装
    • 3.3 Installiation 安装
    • 3.4 System Template Setup 系统模板设置
  • 4 KVM Setup and Installation KVM设置和安装
    • 4.1 Prerequisites 先决条件
    • 4.2 Installation 安装
    • 4.3 KVM Configuration KVM配置
      • 4.3.1 QEMU Configuration QEMU配置
      • 4.3.2 Libvirt Configuration Libvirt配置
    • 4.4 KVM configuration complete
  • 5 Configuration 组态
    • 5.1 UI Access
    • 5.2 Setting up a Zone 添加资源域
    • 5.3 Pod Configuration
      • 5.3.1 添加提供点
      • 5.3.2 添加来宾网络
    • 5.4 Cluster
      • 5.4.1 添加群集
      • 5.4.2 添加主机
    • 5.5 Primary Storage 添加主存储
    • 5.6 Secondary Storage 添加二级存储
  • 6 完成
  • 7 创建实例

0 说明

  • 百度网盘统一提取码:0818
  • 按照官网快速安装指南进行,manegement(管理结点)和agent(计算结点)在同一台虚拟机上(看不懂后半句没关系,搞完你就有点懂了)
  • 本文用来记录所遇的坑和解决方案,参考了各路大佬的解决方法
  • 英文不好啊,按着翻译对照着看,以下按照官网分配标题进行
  • 解释什么的去官网看,这里简单粗暴只写命令
  • 一步一步跟着来,默认你懂虚拟机最最基础的操作,比如知道哪些命令在终端写,哪些是写到文件中

1 Prerequisites 先决条件

  1. 安装虚拟机(桥接模式)传送门

  2. 至少一台支持并启用硬件虚拟化的计算机

  3. CentOS 7.7 x86_64 ISO百度网盘下载

  4. 一个/ 24网络,其网关位于xxx.xxx.xxx.1,该网络上不应有DHCP,并且任何运行CloudStack的计算机都不会具有动态地址。再次,这是为了简单起见。

  5. centos网络配置为桥接模式(2.2就是帮你配置的)
    【大数据实验1】cloudstack安装部署(小白式傻瓜教学)_第1张图片

2 Environment 环境

2.0 先看看有没有KVM

lsmod | grep kvm

lsmod | grep kvm

2.1 Operating System 操作系统

此时如果你没开网,那就先做完步骤2.2(2.2的第一步也要用yum,也先暂且放一放)再回来运行这条命令

yum -y update:升级所有包,改变软件设置和系统设置,系统版本内核都升级
yum -y upgrade:升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变
参考传送门

yum -y upgrade

2.2 Configuring the network 配置网络

  1. 安装“brctl”和“net-tools”

没网就先执行下面的联网步骤

yum install bridge-utils net-tools -y

【接下来开始配置桥接网络】

解决bug1:网络连接问题传送门

  1. 配置桥
vi /etc/sysconfig/network-scripts/ifcfg-cloudbr0

键入【i】开始编辑ifcfg-cloudbr0
退出:【Esc】→键入【:wq】(注意冒号)

#【ifcfg-cloudbr0】,原本没有这个文件
DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
# 此模块以官网指南为例,但需要根据实际情况填写,【】中为提示
# 因此文档中有这些网段的,都要替换成实际的IP
IPADDR=172.16.10.2【和主机同网段的ip地址】
GATEWAY=172.16.10.1【网关xxx.xxx.xxx.1】
NETMASK=255.255.255.0
# 记得删除这些注释
DNS1=8.8.8.8
DNS2=8.8.4.4
STP=yes
USERCTL=no
NM_CONTROLLED=no
  1. 修改网络配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0

eth0为例,根据实际情况修改文件
比如我的是ens33,那就是vi /etc/sysconfig/network-scripts/ifcfg-ens33,有eth0的地方都换成ens33

【大数据实验1】cloudstack安装部署(小白式傻瓜教学)_第2张图片

#【ifcfg-eth0】
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=cloudbr0
# 【UUID不要改,但要有】
# 【保持和cloudbr0统一,把这个ens33文件里的下面两个改成no】
# IPV6INIT=no
# IPV6_AUTOCONF=no
  1. 重启网络

解决bug2:systemctl enable network和systemctl restart network报错传送门

systemctl enable network
systemctl restart network
  1. 测试有无网络
ping baidu.com

有网就对了,记得返回去把上面两个yum执行了

2.3 Hostname

  1. 改名儿hostname
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.10.2 srvr1.cloud.priv
  1. 重启网络,并看看改名成功了没
systemctl restart network
hostname --fqdn

显示srvr1.cloud.priv就对了

2.4 SELinux

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)
参考传送门
需要关闭SELinux,保证cloustack正常工作

  1. 关闭SELinux防火墙(不用重启)。设置SELinux为宽容状态(permissive)

permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用
参考传送门

setenforce 0
  1. 为了保证SELiinux处于permissive模式
vi /etc/selinux/config
# 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
  1. 查看当前selinux状态
getenforce

显示Permissive就对了
在这里插入图片描述

2.5 NTP

网络时间协议
安装NTP来保持云服务器中所有时钟同步,默认的是格林威治时间
centod 7可用chronyd代替ntpd,但本教程还是按照官网用了ntpd

yum -y install ntp
systemctl enable ntpd
systemctl start ntpd

2.6 Configuring the CloudStack Package Repository 配置CloudStack软件包存储库

将机器配置为使用CloudStack软件包存储库

vi /etc/yum.repos.d/cloudstack.repo
# 原本没有这个文件
[cloudstack]
name=cloudstack	# yum仓库名字
baseurl=http://download.cloudstack.org/centos/$releasever/4.14/	# 仓库的位置
enabled=1 # 开启yum功能
gpgcheck=0 # 关闭完整性检查

2.7 NFS

网络文件系统,Network File System

一种使用于分散式文件协定,功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据
参考传送门

配置将对主存储和辅助存储都使用NFS

  1. 安装nfs-utils
yum -y install nfs-utils
  1. 配置NFS以提供两个不同的共享
vi /etc/exports
# 原本没有这个文件
/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)
  1. 创建目录

mkdir用法参考传送门

mkdir -p /export/primary
mkdir /export/secondary
  1. 域设置

CentOS 7.x发行版默认使用NFSv4。
NFSv4要求所有客户端上的域设置都匹配

vi /etc/idmapd.conf
# 取消注释并修改
Domain = cloud.priv
  1. /etc/sysconfig/nfs的底部添加配置值(或仅取消注释并设置它们)
vi /etc/sysconfig/nfs
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
  1. 禁用防火墙

firewall和SELiinux的区别传送门

systemctl stop firewalld
systemctl disable firewalld
  1. 将nfs服务配置为在启动时启动并在主机上实际启动它

rpcbind是一个RPC服务,主要是在nfs共享时候负责通知客户端服务器的nfs端口号的。简单理解rpc就是一个中介服务。

systemctl enable rpcbind
systemctl enable nfs
systemctl start rpcbind
systemctl start nfs
  1. 查看共享目录
showmount -e srvr1.cloud.priv

查看共享目录

3 Management Server Installation 管理服务器安装

3.1 Database Installation and Configuration 数据库安装和配置

解决可能出现的bug3:数据库配置问题传送门

  1. 添加一个MySQL社区存储库
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
  1. 安装mysql
  • 此时安装的是5.6.49版本
    在2020.10.16时安装是5.6.49版本,在2020.10.19时安装是5.6.50版本。
    说这个有什么用呢?因为在步骤3.2遇到了坑
yum -y install mysql-server
  1. 更改/etc/my.cnf,在[mysqld]部分中添加
vi /etc/my.cnf
# 对于Ubuntu 16.04和更高版本,开头加上这句:server-id=master-01
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
  1. 启动mysql
systemctl enable mysqld
systemctl start mysqld

3.2 MySQL Connector Installation MySQL连接器安装

安装Python MySQL连接器

  • 此时安装的是8.0.21版本
    在2020.10.16时安装是8.0.21版本,在2020.10.19时安装是8.0.22版本。
  1. 假如是8.0.22版本的连接器,会和mysql5.6.50版本相冲突,然后让你安装mysql8.0.22,即使你成功了,后续还会产生问题

应该是mysql80安全性太高的缘故,按照官网操作的话,用mysql56吧

  1. 未测试5.6.50版本的mysql和8.0.21版本的连接器是否会有冲突
yum -y install mysql-connector-python

3.3 Installiation 安装

  1. 安装管理服务器
yum -y install cloudstack-management

下载可能会比较慢,建议官网下载了之后进行本地安装

  1. CloudStack 4.14需要Java 11 JRE。确认Java 11是选定的/活动的Java。
alternatives --config java
  1. 设置数据库
    之前提到的数据库版本问题会在这里出现错误
    假如你执意用mysql8,我没找到解决方法,如果找到了还请告诉我一声怎么做的呀~
cloudstack-setup-databases cloud:password@localhost --deploy-as=root

看到successfully字样你就对了

  1. 设置管理服务器

如果servlet容器是Tomcat7,则必须使用参数–tomcat7

cloudstack-setup-management

3.4 System Template Setup 系统模板设置

官网不顾网速死活的方法

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloudstack.org/systemvm/4.14/systemvmtemplate-4.14.0-kvm.qcow2.bz2 -h kvm -F

老规矩本地下载

4 KVM Setup and Installation KVM设置和安装

4.1 Prerequisites 先决条件

  • 同 2
  • 由于我们的manegement和agent安装在一台虚拟机上,所以这一步不用管

4.2 Installation 安装

EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.
参考传送门

yum -y install epel-release
yum -y install cloudstack-agent

本地安装

4.3 KVM Configuration KVM配置

配置KVM的两个不同部分:libvirt和QEMU
(1)kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备;
(2)qemu是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上服务器虚拟化。

因为用到了上面两个东西,所以一般都称之为qemu-kvm。

(3)libvirt则是调用kvm虚拟化技术的接口用于管理的,用libvirt管理方便,直接用qemu-kvm的接口太繁琐。
KVM、libvirt和qemu的关系传送门

4.3.1 QEMU Configuration QEMU配置

vi /etc/libvirt/qemu.conf

VNC (Virtual Network Console)是虚拟网络控制台

# 取消注释下面这一行
vnc_listen=0.0.0.0

说明1:vnclisten 默认绑定127.0.0.1 在配置文件里指定VNC 绑定0.0.0.0IP,就不用在安装kvm虚拟机时指定vnclisten参数了。
说明2:在虚拟主机上有很多个虚拟机的时候,需要指定每个虚拟机的端口,否则将会很乱。
参考传送门

4.3.2 Libvirt Configuration Libvirt配置

  1. 为了进行实时迁移,libvirt必须侦听不安全的TCP连接。关闭libvirts尝试使用多播DNS广告的尝试
vi /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
  1. 修改/etc/sysconfig/libvirtd
vi /etc/sysconfig/libvirtd
# 取消注释下面这一行
LIBVIRTD_ARGS="--listen"
  1. 重启libvirt
systemctl restart libvirtd

4.4 KVM configuration complete

看看你的KVM在不在

lsmod | grep kvm

5 Configuration 组态

这里需要注意的是:
(1)添加主机那一步的IP
(2)创建系统VM那一步失败的可能原因在于你的虚拟机硬件配置

5.1 UI Access

  • 网址:http://172.16.10.2:8080/client
  • 默认用户名:admin
  • 默认密码:password
  • 第三个框框空着
  • 可以选择语言
  • 不要跳过新手步骤

5.2 Setting up a Zone 添加资源域

  • 名称:Zone1
  • DNS1:8.8.8.8
  • DNS2:8.8.4.4
  • 内部DNS1:8.8.8.8
  • 内部DNS2:8.8.4.4

5.3 Pod Configuration

5.3.1 添加提供点

  • 名称:Pod1
  • 网关:172.16.10.1
  • 网络掩码:255.255.255.0
  • IP范围:172.16.10.10-172.16.10.20

5.3.2 添加来宾网络

  • 网关:172.16.10.1
  • 网络掩码:255.255.255.0
  • IP范围:172.16.10.30-172.16.10.200

5.4 Cluster

5.4.1 添加群集

  • 虚拟机管理程序:KVM
  • 名称:Cluster1

5.4.2 添加主机

  • 主机名称:172.16.10.2
  • 用户名:root
  • 密码:【虚拟机root密码】

5.5 Primary Storage 添加主存储

  • 名称:Primary1
  • 协议:NFS
  • 范围:群集
  • 服务器:172.16.10.2
  • 路径:/export/primary

5.6 Secondary Storage 添加二级存储

  • NFS服务器:172.16.10.2
  • 提供程序:NFS
  • 路径:/export/secondary

6 完成


成功
【大数据实验1】cloudstack安装部署(小白式傻瓜教学)_第3张图片

【大数据实验1】cloudstack安装部署(小白式傻瓜教学)_第4张图片

7 创建实例

传送门

你可能感兴趣的:(大数据处理与分析,大数据)