Advertisement

私有云平台管理

阅读量:

Controller;compute

环境********Centos7.9两块网卡,两块硬盘

设置控制节点主机名为 controller,设置计算节点主机名为 compute;

controller

复制代码
  
    
 hostnamectl set-hostname controller

compute

复制代码
  
    
 hostnamectl set-hostname compute

修改 hosts 文件将 IP 地址映射为主机名;

复制代码
  
    
 vi /etc/hosts
    
 插入以下
    
 192.168.24.* controller 
    
 192.168.24.* compute

关闭防火墙并关闭开机自启

复制代码
  
    
 syscemctl stop firewalld
    
 syscemctl disable firewalld

更改selinux文件

复制代码
  
    
 vi /etc/selinux
    
 添加如下
    
 SELINUX=disabled
    
 sentenforce 0 立即生效

挂载光盘(controller)

复制代码
  
    
 mkdir opt/centos opt/iaas
    
 mount CentOS-7-x86_64-DVD-2009.iso /mnt/
    
 mkdir /opt/centos & mkdir /opt/iaas
    
 cp -rvf /mnt/* /opt/centos/
    
 umount /mnt/

搭建ftp服务器

复制代码
  
    
 【controller节点和compute节点】
    
 yum -y install vsftpd
    
 修改vsftpd文件
    
 vi /etc/vsftpd/vsftpd.conf
    
 添加如下内容
    
 anon_root=/opt/
    
 设置共享目录/opt
    
 systemctl start vsftpd
    
 systemctl enable vsftpd

配置yum源

复制代码
  
    
 mv /etc/yum.repos.d/* /etc/yum
    
 vi /etc/yum.repos.d/loca.repo
    
 添加如下
    
 [centos]
    
 name=centos
    
 baseurl=file:///opt/centos
    
 gpgcheck=0
    
 enabled=1
    
 [iaas]
    
 name=iaas
    
 baseurl=file:///opt/iaas-repo
    
 gpgcheck=0
    
 enabled=1
    
   16. compute节点
    
 添加如下
    
 [centos]
    
 name=centos
    
 baseurl=ftp://controller/opt/centos
    
 gpgcheck=0
    
 enabled=1
    
 [iaas]
    
 name=iaas
    
 baseurl=ftp://controller/opt/iaas-repo
    
 gpgcheck=0
    
 enabled=1
复制代码
  
    
 重新生成yum源
    
 yum makecache
复制代码
  
    
 清除缓存,验证yum源
    
 【controller/compute】
    
 yum clean all
    
 yum list

设置 controller 节点可以无秘钥访问 compute 节点。

复制代码
  
    
 生成密钥对
    
 【controller/compute】
    
 ssh-keygen 
    
 【controller】复制密钥给compute节点
    
 ssh-copy-id compute
    
 ssh-copy-id controller
    
 【compute】复制密钥给controller节点
    
 ssh-copy-id controller
    
 ssh-copy-id compute

计算节点分区

复制代码
  
    
 先在compute节点添加一个硬盘
    
 用lsblk命令查看分区情况
    
 对sdb进行分区
    
 fdisk /dev/sdb
    
 输入n 分第一个区
    
 按四次回车默认
    
 再输入+20G 设置分区大小
    
 输入n 分第二个区
    
 按四次回车默认
    
 再输入+20G 设置分区大小
    
 输入w保存退出
    
 [root@compute ~]# fdisk /dev/sdb
    
 Welcome to fdisk (util-linux 2.23.2).
    
   16. Changes will remain in memory only, until you decide to write them.
    
 Be careful before using the write command.
    
 Command (m for help): n
    
 Partition type:
    
    p   primary (2 primary, 0 extended, 2 free)
    
    e   extended
    
 Select (default p): 
    
 Using default response p
    
 Partition number (3,4, default 3): 
    
 First sector (2059-104857599, default 4096): 
    
 Using default value 4096
    
 Last sector, +sectors or +size{K,M,G} (4096-41943039, default 41943039): +10G
    
 Partition 3 of type Linux and of size 10 GiB is set
    
 Command (m for help): w
    
 The partition table has been altered!
    
 Calling ioctl() to re-read partition table.
    
 Syncing disks.

OpenStack 搭建任务

使用提供的脚本框架 iaas-pre-host.sh

复制代码
  
    
 安装xiandian
    
 yum -y install openstack-iaas 或 iaas-pre-host.sh
    
 备份
    
 cp /etc/xiandian/openrc.sh /etc/xiandian/openrc.sh.bak
    
  
    
 vi /etc/openstack/openrc.sh
    
 修改内容
    
 ctrl+V delete删除第一行注释
    
 底线输入赋值PASS=换成PASS=000000
    
 :%s/PASS=/PASS=000000/
    
 #--------------------system Config--------------------##
    
 #Controller Server Manager IP. example:x.x.x.x
    
 HOST_IP=192.168.24.10
    
  
    
 #Controller HOST Password. example:000000 
    
 HOST_PASS=000000
    
  
    
 #Controller Server hostname. example:controller
    
 HOST_NAME=controller
    
  
    
 #Compute Node Manager IP. example:x.x.x.x
    
 HOST_IP_NODE=192.168.24.20
    
  
    
 #Compute HOST Password. example:000000 
    
 HOST_PASS_NODE=000000
    
  
    
 #Compute Node hostname. example:compute
    
 HOST_NAME_NODE=compute
    
  
    
 #--------------------Chrony Config-------------------##
    
 #Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)
    
 network_segment_IP=192.168.24.0/24
    
  
    
 #--------------------Rabbit Config ------------------##
    
 #user for rabbit. example:openstack
    
 RABBIT_USER=openstack
    
  
    
 #Password for rabbit user .example:000000
    
 RABBIT_PASS=000000
    
  
    
 #--------------------MySQL Config---------------------##
    
 #Password for MySQL root user . exmaple:000000
    
 DB_PASS=000000
    
  
    
 #--------------------Keystone Config------------------##
    
 #Password for Keystore admin user. exmaple:000000
    
 DOMAIN_NAME=doma
    
 ADMIN_PASS=000000
    
 DEMO_PASS=000000
    
  
    
 #Password for Mysql keystore user. exmaple:000000
    
 KEYSTONE_DBPASS=000000
    
  
    
 #--------------------Glance Config--------------------##
    
 #Password for Mysql glance user. exmaple:000000
    
 GLANCE_DBPASS=000000
    
  
    
 #Password for Keystore glance user. exmaple:000000
    
 GLANCE_PASS=000000
    
  
    
 #--------------------Nova Config----------------------##
    
 #Password for Mysql nova user. exmaple:000000
    
 NOVA_DBPASS=000000
    
  
    
 #Password for Keystore nova user. exmaple:000000
    
 NOVA_PASS=000000
    
  
    
 #--------------------Neturon Config-------------------##
    
 #Password for Mysql neutron user. exmaple:000000
    
 NEUTRON_DBPASS=000000
    
  
    
 #Password for Keystore neutron user. exmaple:000000
    
 NEUTRON_PASS=000000
    
  
    
 #metadata secret for neutron. exmaple:000000
    
 METADATA_SECRET=000000
    
  
    
 #Tunnel Network Interface. example:x.x.x.x
    
 INTERFACE_IP=192.168.24.10
    
  
    
 #External Network Interface. example:eth1
    
 INTERFACE_NAME=ens34
    
  
    
 #External Network The Physical Adapter. example:provider
    
 Physical_NAME=provider
    
  
    
 #First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
    
 minvlan=101
    
  
    
 #Last Vlan ID in VLAN RANGE for VLAN Network. example:200
    
 maxvlan=200
    
  
    
 #--------------------Cinder Config--------------------##
    
 #Password for Mysql cinder user. exmaple:000000
    
 CINDER_DBPASS=000000
    
  
    
 #Password for Keystore cinder user. exmaple:000000
    
 CINDER_PASS=000000
    
  
    
 #Cinder Block Disk. example:md126p3
    
 BLOCK_DISK=sdb1
    
  
    
 #--------------------Swift Config---------------------##
    
 #Password for Keystore swift user. exmaple:000000
    
 SWIFT_PASS=000000
    
  
    
 #The NODE Object Disk for Swift. example:md126p4.
    
 OBJECT_DISK=sdb2
    
  
    
 #The NODE IP for Swift Storage Network. example:x.x.x.x.
    
 STORAGE_LOCAL_NET_IP=192.168.24.10
    
  
    
 #--------------------Heat Config----------------------##
    
 #Password for Mysql heat user. exmaple:000000
    
 HEAT_DBPASS=000000
    
  
    
 #Password for Keystore heat user. exmaple:000000
    
 HEAT_PASS=000000
    
  
    
 #--------------------Zun Config-----------------------##
    
 #Password for Mysql Zun user. exmaple:000000
    
 ZUN_DBPASS=000000
    
  
    
 #Password for Keystore Zun user. exmaple:000000
    
 ZUN_PASS=000000
    
  
    
 #Password for Mysql Kuryr user. exmaple:000000
    
 KURYR_DBPASS=000000
    
  
    
 #Password for Keystore Kuryr user. exmaple:000000
    
 KURYR_PASS=000000
    
  
    
 #--------------------Ceilometer Config----------------##
    
 #Password for Gnocchi ceilometer user. exmaple:000000
    
 CEILOMETER_DBPASS=000000
    
  
    
 #Password for Keystore ceilometer user. exmaple:000000
    
 CEILOMETER_PASS=000000
    
  
    
 #--------------------AODH Config----------------##
    
 #Password for Mysql AODH user. exmaple:000000
    
 AODH_DBPASS=000000
    
  
    
 #Password for Keystore AODH user. exmaple:000000
    
 AODH_PASS=000000
    
  
    
 #--------------------Barbican Config----------------##
    
 #Password for Mysql Barbican user. exmaple:000000
    
 BARBICAN_DBPASS=000000
    
  
    
 #Password for Keystore Barbican user. exmaple:000000
    
 BARBICAN_PASS=000000
    
 ----------------------------------------
    
 将配置文件复制到compute节点
    
 scp /etc/xiandian/openrc.sh compute:/etc/xiandian/openrc.sh
    
  
    
 建议配置好环境变量后拍个快照

通过脚本安装服务

(安装前必须执行此命令否则无法进行后续操作)

复制代码
  
    
 【Controller节点和Compute节点】
    
 iaas-pre-host.sh

提取compute节点的yum所有需要安装的服务

复制代码
  
    
 【compute节点】
    
 cat /usr/local/bin/iaas-*compute.sh | grep yum
    
 复制粘贴运行即可

搭建mysql数据库组件

复制代码
  
    
 【controller节点】
    
 iaas-install-mysql.sh
    
 修改配置文件将缓存 CACHESIZE 修改为 128
    
 vi etc/sysconfig/memcached
    
 CACHESIZE="128"
    
 并重启相应服务
    
 systemctl restart mariadb
    
  
    
 登录到数据库
    
 mysql -uroot -p000000

搭建keystone认证服务组件

复制代码
  
    
 【controller节点】
    
 iaas-install-keystone.sh
    
 创建一个名为 tom 的账户,密码为 tompassword123,邮箱为tom@example.com
    
 openstack user create --domain dema --password tompassword123 --email tom@example.com tom
    
 --domain{记得要加域名}

搭建镜像(Glance)服务组件

复制代码
  
    
 【controller节点】
    
 iaas-install-glance.sh 
    
 创 建 一 个 名 为 cirros 的 镜 像 , 镜 像 文 件 使 用cirros-0.3.4-x86_64-disk.img
    
  
    
 openstack image create --container-format bare --disk-format qcow2 --file cirros-0.3.4-x86_64-disk.img cirros

1.搭建块存储(Cinder)服务组件

复制代码
 通过命令“openstack volume create”创建块存储

    
 例:创建大小2G,名称“volume”的块存储
    
  
    
 openstack volume create --size 2 volume
    
 对已有的卷进行扩容操作扩容至3G“openstack volume set”命令
    
 openstack volume set --size 3 volume
    
  
    
  
    
 使用命令创建的“volume”块存储添加至云主机“cirros-test”
    
  
    
 openstack server add volume cirros-test volume

搭建计算(Nova)服务组件

复制代码
  
    
 使用 nova 命令创建一个名为 test,ID 为 5,内存为2048MB,磁盘容量为10GB,vCPU 数量为 2 的云主机类型
    
 nova flavor-create test 5 2048 10 2
    
  (或openstack flavor create --disk 10 --ram 2048 --vcpus 2 --ID 5 test)
    
  
    
 查看flavor类型列表
    
 openstack flavor list
    
  
    
 通过命令创建云主机,使用cirros镜像,flavor为1核vCPU.512M内存、10G硬盘,使用network-vlan网络。云主机名为cirros-test"创建命令如下
    
 openstack server create --image cirros-0.3.4-x86_64-disk.img --fla
    
 vor 10 --network network-vlan cirros-test
    
   13. 创建新的安全组 test
    
 openstack security group create test
    
   16. 删除访问安全组
    
 openstack security group delete test

网络(neuturon)服务的基本使用

复制代码
  
    
 controller 节点执行 
    
 iaas-install-neutron-controller.sh
    
 compute 节点执行
    
 iaas-install-neutron-compute.sh
    
 创建云主机外部网络 ext-net,子网为 ext-subnet,云主机浮动 IP 可用网段为 192.168.10.100~192.168.10.200,
    
 网关为 192.168.100.1。
    
 # neutron net-create --router:external=true ext-net1
    
 创建子网
    
 # neutron subnet-create --name ext-subnet1 --allocation-pool 
    
 start=192.168.200.100,end=192.168.200.200 --gateway 192.168.200.1 --enable-dhcp 
    
 --ip-version 4 ext-net 192.168.200.0/24

搭建dashboard图形化界面

复制代码
  
    
 iaas-install-dashboard.sh
    
 修改nova配置文件使之能通过公网 IP 访问 dashboard 首页
    
 vi /etc/nova/nova.conf
    
 修改如下
    
 routing_source_ip= = ['公网IP']
    
 #修改nova配置文件,需要重启:
    
 [root@controller1 nova]# systemctl restart libvirtd

Swift服务的基本使用

复制代码
        1. 通过“openstack container create”命令创建容器,命令格式如下所示:

    
        2. 使用命令创建容器,名称为“swift-test”,操作命令如下:
    
        3. openstack container create swift -test 
    
        4.  
    
        5. 创建完容器后,可以创建对象,通过使用命令“openstack object create”在对象中创建对象。命令格式如下所示:
    
        6. 创建对象的过程也是向容器中上传文件,使用命令创建“test/anaconda-ks.cfg”和“anaconda-ks.cfg”对象。操作命令如下所示:
    
        7. [root@controller ~]# openstack object create swift-test test/anaconda-ks.cfg
    
        8.  
    
        9. 使用命令创建一个容器test并查看容器的状态信息,命令如下:
    
        10.  
    
        11. [root@controller ~]# swift post test
    
        12. [root@controller ~]# swift stat test

openstack运维任务

项目管理

复制代码
  
    
 [root@controller ~]# openstack project create --domain dema --description "Hello shop" shop shop

用户管理

复制代码
  
    
 更新配额 
    
 [root@controller ~]# nova quota-update admin --instances 13
    
 查看配额
    
 [root@controller ~]# nova quota-class-show admin
    
 +----------------------+-------+
    
|Quota|Limit|

    
 +----------------------+-------+
    
|instances|13|

    
|cores|20|

    
|ram|51200|

    
|metadata_items|128|

    
|key_pairs|100|

    
|server_groups|10|

    
|server_group_members|10|

    
 +----------------------+-------+

镜像管理

复制代码
  
    
 登 录 controller 节 点 , 使 用 glance 相 关 命 令 上 传 镜 像 , 源 使 用 
    
 CentOS_7.5_x86_64_XD.qcow2,名字为 centos7.5,修改这个镜像为共享状态,并设置最小磁盘为 5G。 
    
 glance image-create --name "centos7.5" --file chinaskills_cloud_iaas.iso --container-format bare  --disk-format qcow2 --min-disk 5

后端配置文件管理

复制代码
  
    
 修改配置文件
    
 vi /etc/glance/glance-api.conf 
    
 user_storage_quota = 10
    
  
    
 重启glance服务
    
 systemctl start openstack-glance-api

数据库管理

复制代码
  
    
 请使用数据库命令将所有数据库进行备份,备份文件名为 openstack.sql
    
 mysqldump --opt --all-databases > openstack.sql

存储服务管理

复制代码
  
    
 创建一个名为 lvm 的卷类型,创建该类型规格键值对,要求 lvm 卷类型对应 cinder后端驱动 lvm所管
    
 理的存储资源,名字 lvm_test,大小 1G 的云硬盘并查询该云硬盘的详细信息。
    
 [root@controller ~]# cinder type-create lvm               
    
 +--------------------------------------+------+-------------+-----------+
    
|ID|Name|Description|Is_Public|

    
 +--------------------------------------+------+-------------+-----------+
    
|96d48f5e-7f57-43da-aa02-ec1446b9f3a5|lvm|-|True|

    
 +--------------------------------------+------+-------------+-----------+
    
 [root@controller ~]# cinder create --name lvm_test --volume-type lvm 1

数据库管理

复制代码
  
    
 进入数据库myqle,创建本地用户 examuser,密码为 000000,然后查询 mysql 数据库中的 user 表的 user,host,password 字段。
    
 insert into mysql.user(host,user,password) values("localhost","examuser",password("000000"));
    
 然后赋予这个用户所有数据库的“查询”“删除”“更新”“创建”的权限。
    
 grant select,delete,update,create on *.* to examuser@'localhost' identified by '000000';

存储管理

复制代码
  
    
 请使用 openstack 命令创建一个名为 test 的 cinder 卷,卷大小为 5G。
    
 openstack volume create test --size 5

存储管理

复制代码

存储管理

复制代码
  
    
 在 controller 节 点 执 行 iaas-install-swift-controller.sh, compute 节 点 执 行
    
 iaas-install-swift-compute.sh
    
 创建一个名为 file 的容器。
    
 swift post file  或者 openstack container create file

存储管理

复制代码
  
    
 用 swift 命令,把 cirros-0.3.4-x86_64-disk.img 上传到 file 容器中。 
    
 [root@controller ~]# swift upload file cirros-0.3.4-x86_64-disk.img

添加控制节点资源到云平台

复制代码
  
    
 一、修改openrc.sh(控制节点)
    
 把compute节点的名称和IP都改成controller节点的名称和IP
    
 vi /etc/xiandian/openrc.sh
    
  
    
 #Compute Node Manager IP. example:x.x.x.x
    
 HOST_IP_NODE=192.168.20.30 --改为controller节点ip
    
  
    
 #Compute HOST Password. example:000000
    
 HOST_PASS_NODE=000000
    
  
    
 #Compute Node hostname. example:compute
    
 HOST_NAME_NODE=controller --改为controller节点hostname
    
 ————————————————
    
  
    
 二、在Controller节点安装nova-compute服务
    
 iaas-install-nova-compute.sh
    
 安装到最后需要输入Controller节点密码即可成功

openstack平台I/O优化

复制代码
 I/O调度策略修改

    
 调度策略的修改是比较简单的,首先查看当前使用的调度算法,命令如下:
    
 [root@controller ~]# cat /sys/block/vda/queue/scheduler 
    
 [none] mq-deadline kyber
    
 可以看到当前的I/O调度算法none,修改算法为mq-deadline,命令如下:
    
 [root@controller ~]# echo mq-deadline > /sys/block/vda/queue/scheduler
    
 修改完之后,查看当前使用的算法,命令如下:
    
 [root@controller ~]# cat /sys/block/vda/queue/scheduler 
    
 [mq-deadline] kyber none
    
 可以看到当前的I/O调度算法为mq-deadline模式。

全部评论 (0)

还没有任何评论哟~