• cloudstack部署


    参考文档

    https://blog.csdn.net/u012124304/article/details/80960504#Mysql_37

    cloudstack的rpm包下载地址

    http://download.cloudstack.org/centos/

    环境部署规划,

    虚拟化:esxi 6.7

    操作系统版本:centos 6.9

    cloudstack版本:4.9.3.0

    python版本:2.6

    主机名

    IP地址

    配置

    用途

    node1

    172.16.103.2

    16vcpu32Gb内存,16G精简配置硬盘

    cloudstack控制节点,安装数据库,和控制节点的web控制台,同时也作为计算节点存在

    node2

    172.16.103.3

    4vcpu,4G内存,16G精简配置,300G精简配置硬盘,100G精简配置

    模拟存储节点,安装nfs包,对外提供nfs的存储服务,16G用于安装操作系统,300G用于主存储,100G用户二级存储

    node3

    172.16.103.4

    16vcpu32Gb内存,16G精简配置硬盘

    纯的计算节点,为cloudstack提供计算资源

    1,配置ntp服务器和数据库服务器

    关闭selinux和防火墙,重启

    vi /etc/selinux/config

    chkconfig iptables off

    修改hosts

    vi /etc/hosts

    172.16.103.2 node1

    172.16.103.3 node2

    172.16.103.4 node3

    安装ntp服务

    yum install ntp -y

    service ntpd start

    chkconfig ntpd on

    安装mysql

    yum -y install mysql mysql-server

    service mysqld start

    chkconfig --add mysqld

    chkconfig mysqld on

    修改mysql中root用户的密码为root

    mysql

    mysql> use mysql;

    mysql> set password for root@localhost = password('root');

    2,安装管理端和服务端的rpm包

    cloudstack主要的包

    cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm #agent包。添加计算节点的时候,计算节点上需要安装的包

    cloudstack-common-4.9.3.0-1.el6.x86_64.rpm #common包,应该是主程序包

    cloudstack-management-4.9.3.0-1.el6.x86_64.rpm #管理端的包

    cloudstack-usage-4.9.3.0-1.el6.x86_64.rpm #计费用量包,本次项目不安装

    mysql-connector-python-2.1.3-1.el6.x86_64.rpm #cloudstack安装所需要的mysql的python连接器,需要自行去mysql官网下载对应系统版本的即可

    libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数

    libvirt-lock-sanlock-0.10.2-62.el6.x86_64.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数

    sanlock-2.8-3.el6.x86_64.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数

    sanlock-lib-2.8-3.el6.x86_64.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数

    augeas-1.0.0-10.el6.x86_64.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数

    jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64 #添加计算节点的需要安装的依赖包

    systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2 #系统vm文件

    将以上rpm包上传到/root目录下,然后使用yum localinstall 安装

    先安装mysql的python连接器包

    rpm -ivh mysql-connector-python-2.1.3-1.el6.x86_64.rpm

    使用yum localinstall 安装cloudstack包

    yum localinstall cloudstack-management-4.9.3.0-1.el6.x86_64.rpm cloudstack-common-4.9.3.0-1.el6.x86_64.rpm -y

    初始化数据库

    cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root:root

    参数解析:

    cloud:cloud@localhost :其中cloud:cloudcloudstackmysql数据库中创建的账户和密码,localhostmysql数据库的地址,因为我们装在本机上,所以是localhost,如果mysql数据库在另外一台机器上,则需改为该机器的IP或域名

    –deploy-as=root:root :这个参数的值root:root填的是数据库的root用户名和密码

       

    执行这个命令会在MySql数据库上创建一个cloud的用户,并使用这个用户创建一个cloud数据库。出现以下信息则表明cluodstack的数据库初始化成功:

    时间比较久,耐心等待。

    初始化cloudstack管理服务器

    cloudstack-setup-management

    使用浏览器访问,地址为[host_ipaddress]:8080/client,默认的用户名和密码为admin/password,首次登陆和首次使用最好走一遍下面的向导

       

    3,配置该主机为计算节点。

    配置为计算节点需要安装cloudstack-agent包和cloudstack-common包,而在这之前还需要安装libvirtqemucloudstackKVM虚拟化层的操作实际上都是libvirtqemu来完成的,安装libvirtqemu需要安装相关的依赖包,需要的依赖包如下

    libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm

    libvirt-lock-sanlock-0.10.2-62.el6.x86_64.rpm

    sanlock-2.8-3.el6.x86_64.rpm

    sanlock-lib-2.8-3.el6.x86_64.rpm

    augeas-1.0.0-10.el6.x86_64.rpm

    这5个包在centos的系统安装镜像里面没有,需要自行上网搜索下载,下面安装这几个rpm包

    rpm -ivh libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm

    rpm -ivh sanlock-lib-2.8-3.el6.x86_64.rpm

    rpm -ivh sanlock-2.8-3.el6.x86_64.rpm

    rpm -ivh augeas-1.0.0-10.el6.x86_64.rpm --force --nodeps

    安装libvirtqemu

    yum install libvirt* qemu* -y

    安装cloudstack-agent包和cloudstack-common包,同时安装cloudstack-usage包,如果是其他纯计算节点,可以不安装cloudstack-usage包,在安装这些包之前还需要安装一个依赖包,这个依赖包可能在centos的系统镜像里面也没有

    rpm -ivh jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm

    yum localinstall cloudstack-common-4.9.3.0-1.el6.x86_64.rpm cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm

    启动相关服务

    service cloudstack-agent start

    查看服务器状态

    service cloudstack-agent status

    发现服务器为cloudstack-agent dead but subsys locked状态,修复该错误,开启宿主机的虚拟化支持,在vmware workstation设编辑虚拟机设置选择CPU,勾选虚拟化引擎

    修改配置文件

    vi /etc/cloudstack/agent/agent.properties

    private.network.device=eth0

    public.network.device=eth0

    这里主要修改的网桥设备,如果使用本地网卡作为网桥的话就写ifconfig看到的本地网卡的名字即可

       

    重新启动服务

    service cloudstack-agent restart

    查看服务状态

    service cloudstack-agent status

    4,配置存储节点

    关闭该节点的selinux和iptables,挂载系统镜像,安装nfs包

    yum install nfs-utils rpcbind -y

    设置开机启动

    chkconfig nfs on

    chkconfig rpcbind on

    建立data目录

    mkdir -p /data

    mkdir primary

    mkdir secondary

    添加两块磁盘,将磁盘分区格式化之后挂载到/data/primary/data/secondary 目录,并写入fstab文件,实现开机自动挂载

    编辑nfs的配置文件

    vi /etc/exports

    /data/primary *(rw,sync)

    /data/secondary *(rw,sync)

    /data/primary为把该目录共享出去,*代表所有网络的主机可以连接该共享,(rw,sync) rw为权限,可读可写,sync代表数据同步写入NFS服务器端的硬盘中。也可以用asyncasync是大数据时使用,是先写到缓存区,再写到磁盘里。

    设置权限

    chown -R nfsnobody:nfsnobody /data

    重启相关服务

    service rpcbind restart

    service nfs restart

    查看nfs共享的目录

    5,创建系统vm

    在管理节点上创建被挂载的二级存储目录/data/secondary,然后将上面nfs服务器的secondary目录挂载的此目录。

    mkdir -p /data/secondary

    mount -t nfs 172.16.103.3:/data/secondary /data/secondary/

    同时写入fstab文件,实现开机自动挂载

    vi /etc/fstab

    172.16.103.3:/data/secondary /data/secondary ext4 defaults 0 0

    上传系统vm文件到/data/secondary目录

    解压缩系统vm文件

    bunzip2 systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2

    安装系统vm

    /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /data/secondary/ -f /data/secondary/systemvm64template-4.10-4.10.0.0-kvm.qcow2 -h kvm -F

    6,图形化操作

       

       

       

       

       

       

       

       

       

       

       

       

       

    注意看系统的vm是状态,

    如果代理状态不是up的话,可以尝试重启一下资源域

    如果是在esxi虚拟化下做此实验的话,需要在esxi虚拟化平台中启动混杂模式,具体操作是网络,选择节点桥接的网络,启用混杂模式,然后重启cloudstack的资源域即可。

    7,添加一个计算节点

    计算节点安装好操作系统,挂载系统镜像为yum源,关闭selinux和iptables,注意在vmware workstation设编辑虚拟机设置选择CPU,勾选虚拟化引擎

    编辑hosts文件

    vi /etc/hosts

    172.16.103.4 node3

    上传相关的程序包和依赖包到/root目录

    augeas-1.0.0-10.el6.x86_64.rpm

    cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm

    cloudstack-common-4.9.3.0-1.el6.x86_64.rpm

    jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm

    libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm

    sanlock-2.8-3.el6.x86_64.rpm

    sanlock-lib-2.8-3.el6.x86_64.rpm

    安装安装libvirtqemu的依赖包

    rpm -ivh sanlock-lib-2.8-3.el6.x86_64.rpm

    rpm -ivh sanlock-2.8-3.el6.x86_64.rpm

    rpm -ivh augeas-1.0.0-10.el6.x86_64.rpm --force --nodeps

    安装libvirtqemucloudstackKVM虚拟化层的操作实际上都是libvirtqemu来完成的

    yum install libvirt* qemu*

    安装cloudstack-agent包和cloudstack-common包的依赖包

    yum install java-gcj-compat

    rpm -ivh jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm

    安装cloudstack-agent包和cloudstack-common

    yum localinstall cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm cloudstack-common-4.9.3.0-1.el6.x86_64.rpm

    编辑cloudstack-agent的配置文件

    vi /etc/cloudstack/agent/agent.properties

    private.network.device=eth0

    public.network.device=eth0

    这里主要修改的网桥设备,如果使用本地网卡作为网桥的话就写ifconfig看到的本地网卡的名字即可

    开启cloudstack-agent服务

    service cloudstack-agent start

    查看cloudstack-agent服务的运行状态

    service cloudstack-agent status

    图形化操作,添加计算节点

    8,默认情况下的cloudstack控制台上主存储中显示的容量为可分配的容量,由于虚拟化平台有一个存储超配的概念,所以默认情况下这里显示的是可分配的容量,默认情况下可分配的容量是实际容量的2倍(下图中显示的容量为实际容量,是本人修改做全局配置之后的容量),为了能够显示实际容量需要在全局配置中更改相关的参数,需要更改的参数为storage.overprovisioning.factor(默认这个值为2)修为该1即可,修改之后要重启cloudstack控制台的服务。

       

    9,添加iso镜像

    由于是内网环境,需要在nfs上搭建一个httpd服务,用于发布系统发iso镜像包,目前版本无法支持在web端自由上传iso镜像,所以需要搭建模拟环境

    安装httpd服务

    yum install httpd -y

    编辑httpd.conf配置文件,将默认的html目录更改为主存储的目录

    cd /etc/httpd/conf

    备份默认的配置文件

    mv httpd.conf httpd.conf.bak

    将原配置文件中的内容去掉注释行导入到新配置文件

    cat httpd.conf.bak |grep -v '#' > httpd.conf

    vi httpd.conf

    DocumentRoot "/data/primary" #此处修改为主存储挂载的目录

       

    <Directory />

    Options FollowSymLinks

    AllowOverride None

    </Directory>

       

       

    <Directory "/data/primary"> #此处修改为主存储挂载的目录

       

    Options Indexes FollowSymLinks

       

    AllowOverride None

       

    Order allow,deny

    Allow from all

       

    </Directory>

    重启http服务

    service httpd restart

    将win2008的系统镜像和centos7.3的系统镜像上传至/data/primary目录并且将win的镜像名字修改为win08r2.iso,centos系统镜像名字修改为centos1611every.iso

    创建index.html文件,写入上面的系统镜像的下载地址

    vi /data/primary/index.html

    http://172.16.103.3/win08r2.iso

    <p>

    http://172.16.103.3/centos1611every.iso

    </p>

       

    在cloudstack平台添加iso

       

       

       

    添加之后查看状态一直处于Connection refused状态,百度得知需要修改全局配置中

    secstorage.allowed.internal.sites的配置,默认情况下,不允许连接任何地址,需要将这里配置成我们的httpd的网络地址,注意,经过我的多次测试,这里不能写IP地址,写了IP地址后重启了控制台依然还会出现connection refused的情况,所以所需要的填写的一个网络,例如我们的httpd服务在172.16.103.2,那么这里就需要填写172.16.103.0/24

    填写完毕之后,重启控制台机器,重启不能够使用restart参数,需要在控制节点(node1)上执行以下操作

    service cloudstack-management stop

       

    service cloudstack-management start

    执行完start命令之后要确保8080端口打开之后才可以访问控制台

    netstat -nutpl |grep 8080

    配置了以上全局配置之后可以看到镜像处于downloaded状态了

       

    10,模板制作

    首先使用上面的ISO镜像安装好操作系统,然后将安装好的系统进行优化,最后制作成系统模板。

    centos模板制作

    安装好的centos系统需要执行的操作,首先是网络配置

    vi /etc/sysconfig/network-scripts/ifcfg-eth0 

    DEVICE=eth0

    TYPE=Ethernet

    ONBOOT=yes

    BOOTPROTO=dhcp

    仅保留上面的配置项,其他项均删除

    删除udev绑定

    rm -f /etc/udev/rules.d/70-persistent-net.rules

    删除历史命令

    history -c

    其实还可以执行更多的优化操作例如,删除日志,安装一些需要的软件之类的。

    然后关机,等待cloudstack控制台上centos实例的状态为stopped状态之后在创建模板如下图

    创建模板

    点击实例名

    点击查看卷

    点击卷名名称

    点击创建模板

    输入自定义的名称和说明,选择对应的操作系统,勾选公用,点击确定即可创建模板,模板创建成功之后即可使用模板快速创建虚拟机。

    windows主机创建模板的流程根上述大致相同,都是首先执行一些系统优化的操作,不同之处在于有些低版本的windows系统可能需要额外添加一些支持虚拟化的驱动(主要是磁盘的驱动),例如virtio-win.iso之类的,最后执行windows封装命令即可。系统封装的具体操作如下

    C:WindowsSystem32Sysprep目录下,运行sysprep.exe,选择进入系统全新体验,关机,点确定即可。

    制作模板的过程根上述制作centos模板的过程类似,都是选择卷,制作模板,需要注意的是执行关机之后也要得到cloudstack控制上对应实例的状态处于stopped之后再执行制作模板的操作

       

  • 相关阅读:
    手把手教您玩转信用卡 如何“以卡养卡”合法“套现”
    267家已获第三方许可机构名单查询
    C#生成图片验证码
    File I/O
    文件上传代码
    集合框架
    接口
    多态
    封装
    jsp做成mvc模式的代码
  • 原文地址:https://www.cnblogs.com/withfeel/p/10875781.html
Copyright © 2020-2023  润新知