OpenStack云平台运维

  1. 在自行搭建的OpenStack平台上,使用命令创建一个名为Fmin,ID为1,内存为1024MB,磁盘为10GB,vcpu数量为1的云主机类型。

opestack flavor create --id 1 Fmin --ram 1024 --disk 10 --vcpus 1

openstack flavor list

  1. 在自行搭建的OpenStack平台上,创建云主机网络extnet,子网extsubnet,虚拟机网段为192.168.100.0/24,网关为192.168.100.1,段ID默认写100,网络使用vlan模式。

openstack network create --project admin --provider-network-type vlan --provider-physical-network provider --provider-segment  100 --external extnet

openstack subnet create --network extnet --subnet-range 192.168.100.119/24 --gateway 192.168.100.1 --dhcp "extsubnet"

  1. 在自行搭建的OpenStack平台上,基于“cirros”镜像、1vCPU/1G /10G的flavor、extsubnet的网络,创建一台虚拟机VM1,启动VM1。

openstack server create --flavor Fmin --image centos --network extnet VM1

openstacl server create VM1 –flavor Fmin –image centos –network extent

  1. 在自行搭建的OpenStack平台上,使用glance相关命令上传镜像,镜像源为CentOS_7.5_x86_64.qcow2,名为Gmirror1,min _ram为2048M,min_disk为20G。

glance image-create --name Gmirror1 --disk-format qcow2 --container-format bare --min-ram 2048 --min-disk 20 --progress < /opt/iaas/images/CentOS_7.5_x86_64_XD.qcow2

or   openstack image create Gmirror1 –disk-format qcow2 –container-format bare –min-ram 2048 –min-disk 20 –file /opt/iaas/images/C…….

openstack image create centos --disk-format qcow2 --container-format bare --file /opt/iaas/images/CentOS_7.5_x86_64_XD.qcow2

  1. 在自己搭建的OpenStack平台上,将云主机VM1保存为qcow2格式的快照并保存到controller节点/root/cloudsave目录下,保存名字为csccvm.qcow2。

openstack server image create VM1 --name myVM1

openstack image save --file /root/myVM1.qcow2 myVM1

  1. 在自己搭建的OpenStack平台上,使用cinder服务,创建一个名为“lvm”的卷类型,创建1块卷类型为lvm的1G云盘,并附加到虚拟机VM1上;

    cinder type-create lvm    or  openstack volume type create lvm

  cinder create --volume-type lvm --name xy 1  
   or  openstack volume create xy --type lvm --size 2
   openstack server add volume VM1 block
  1. 登录提供的私有云平台,创建一台centos7.5的云主机,flavor使用带有附加硬盘的类型。连接到该云主机,使用附加的硬盘,划分4个10G的分区,使用这4个分区创建一个raid5级别的磁盘阵列,其中1个分区作为热备盘。

fdisk /dev/sdb

      n

      p

     +5G

     mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

     mdadm -D /dev/md5

  1. 在自行搭建的OpenStack平台上,基于cirros-0.3.4-x86_64-disk.img镜像创建一个名为cirros的镜像,并打标签为small。

glance image-create --name cirros --disk-foemat qcow2 --container-format bare --progress < /root/cirros-0.3.4-x86_64-disk.img

openstack image set cirros --tag small

  1. 在自行搭建的OpenStack平台上,使用cirros镜像创建云主机,flavor使用1vcpu/512M内存/1G硬盘,创建云主机cscc_vm,假设在使用过程中,发现该云主机配置太低,需要调整,请修改相应配置,将dashboard界面上的云主机调整实例大小可以使用,将该云主机实例大小调整为1vcpu/1G内存/2G硬盘。

        Vim /etc/nova/nova.conf

allow_resize_to_same_host=True   修改为

创建云主机类型,调成云主机大小

在dashboard界面上调整云主机实例大小,将云主机实例大小调整为1vcpu/1G内存/2G硬盘。

  1. 在controller节点上创建名为chinaskill的容器,并获取该容器的存放路径;将cirros-0.3.4-x86_64-disk.img镜像上传到chinaskill容器中,并设置分段存放,每一段大小为10M。

swift-ring-builder object.builder

swift post chinaskill

swift stat chinaskill

swift-get-nodes -a /etc/swift/object.ring.gz AUTH_0ab2dbde4f754b699e22461426cd0774/chinaskill/0

swift upload xiandian -S 10000000 root/cirros-0.3.4-x86_64-disk.img   

or  cd /opt/iaas/images/    

swift upload --segment-container test test  -S 10000000 CentOS_6.5_x86_64_XD.qcow2

swift stat xiandian root/cirros-0.3.4-x86_64-disk.img

swift list xiandian_segments

  1. 使用qemu-img相关命令,查询Gmirror1镜像的compat版本,然后将Gmirror1镜像的campat版本修改为0.10(该操作是为了适配某些低版本的云平台) 

openstack image create Gmirror1 –disk-format qcow2 –container-format bare –min-ram 2048 –min-disk 20 –file /opt/iaas/images/C…….        

cd /var/lib/glance/images/

      ll

      qemu-img amend -f qcow2 -o compat=0.10 【容器ID】

  1. 在自行搭建的OpenStack平台上,使用Swift对象存储服务,修改相应的配置文件,使对象存储Swift作为glance镜像服务的后端存储

Vim /etc/glance/glance-api

[glance-store]

stores = glance.store.swift.Store   修改为

default_store = swift    修改为

swift_store_auth_address = http://172.129.119.10:5000/v2.0/   添加

swift_store_create_container_on_put = True      添加

swift_store_multi_tenant = True      添加

swift_store_admin_tenant = service        添加

  1. 登录提供的私有云平台,创建一台centos7.5的云主机,flavor使用带有附加硬盘的类型。连接到该云主机,使用附加的硬盘,要求分出两个大小为5G的分区。使用两个分区,创建名为chinaskill-vg的卷组。

        vgcreate [-s PE 大小] 卷组名 物理卷名,[-s PE 大小] 选项的含义是指定 PE 的大小,单位可以是 MB、GB、TB 等。如果不写,则默认 PE 大小是 4MB。这里的卷组名指的就是要创建的卷组的名称,而物理卷名则指的是希望添加到此卷组的所有硬盘区分或者整个硬盘。

vgcreate -s 4GB chinaskill-vg /dev/sdc1 /dev/sdc2

激活卷组:vgchange -a y chinaskill-vg  停用卷组: vachange -a n 卷组名  删除卷组:vgremove scvg

增加:vgextend scvg /dev/sdb7  把/dev/sdb7物理卷也加入scvg卷组

减少:vgreduce scvg /dev/sdb7在卷组中删除/dev/sdb7物理卷

vgscan 命令主要用于查看系统中是否有卷组;而 vgdisplay 命令则用于查看卷组的详细状态

  1. 在自行搭建的OpenStack平台上,对cinder存储空间进行扩容操作,要求将cinder存储空间扩容10G。

pvcreate /dev/sdb1

vgcreate cinder-volumes /dev/sdb1

vgdisplay

创建一块新分区(sdc1)

vgextend cinder-volumes /dev/sdc1    添加

vgdisplay   查看

  1. 使用提供的云安全框架组件,将自行搭建的OpenStack云平台的安全策略从http优化至https。

yum -y install mod_ssl

              vi /etc/openstack-dashboard/local_settings

##在DEBUG = False下增加4行

USE_SSL = True

CSRF_COOKIE_SECURE = True                              ##原文中有,去掉注释即可

SESSION_COOKIE_SECURE = True                       ##原文中有,去掉注释即可

SESSION_COOKIE_HTTPONLY = True

            vi /etc/httpd/conf.d/ssl.conf

##将SSLProtocol all -SSLv2 -SSLv3改成:

SSLProtocol all -SSLv2

            systemctl restart httpd

systemctl restart memcached

  1. 在controller节点上,编写脚本mysqlbak.sh,要求执行该脚本可以备份数据库,并存放在/opt/mysqlbak目录下。

#!bin/bash

#备份路径

BACKUP=/root/mysql-backup

#数据库的定时备份

DATETIME=`date +%Y_%m_%d_%H%%M%S`

#echo "$DATETIME"

echo "====start backup to $BACKUP/$DATETIME/$DATETIME.tar.gz====="

#主机

HOST=rabbitmq

DB_USER=xy

DB_PWD=000000

#要备份的数据库名

DATABASE=xy

#创建备份的路径,如果路径不存在就创建

[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"

#执行mysql的备份数据库指令

mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz

#打包备份文件

cd $BACKUP

tar -zcvf $DATETIME.tar.gz $DATETIME

#删除临时目录

rm -rf $BACKUP/$DATETIME

#删除1天前的备份文件

#在$backup目录下按照时间找10天前的名称为*.tar.gz的文件,-exec表示执行找到的文件

find $BACKUP -mtime +1 -name "*.tar.gz" -exec rm rf {} \;

echo "============backup success============"

#加入定时任务表示每天8点30分执行后面的命令(shell脚本的路径)

crontab -e

30 8 * * * /root/mysql_backup.sh

  1. 在controller节点上,创建名为test的容器,并上传skill.txt文件(文件可自行创建)至test容器中。

        swift post test

    openstack container list

    echo "open stack总有一天会全是中文的!!!" > xy.txt

    swift upload test xy.txt     把txt上传至test容器

    openstack container show test   

    openstack object create test xy.txt

  1. 登录 IaaS 云主机,创建 swifter 用户,并创建 swift 租户,将 swifter 用户规划到 swift 租户下,赋予 swifter 用户使用 swift 服务的权限,并通过 url 036的方式使用该用户在 swift 中创建容器。

openstack user create  --domain xiandian --password 123456 swifter

openstack project create  --domain xiandian swift

openstack role add --user swifter --project swift --user-domain xiandian admin

swift -A http://xiandian:5000/v3 -U swifter -K 000000 create test

使用url的方式,用admin账号在swift中创建容器,创建完之后用url的方式查看容器列表。

swift -A http://xiandian:5000/v3 -U admin -K 000000 create test

swift -A http://xiandian:5000/v3 -U admin -K 000000 list –lh

  1. 在自行搭建的OpenStack平台上,使用cirros镜像创建云主机vm1,并使用cinder服务在这个云主机上挂载一个大小为2G的硬盘。

        打开dashboard,进入卷,点击"创建卷",将卷加入到云主机中,"编辑卷"-->"管理连接"-->"链接云主机"

进入云主机进行查看磁盘挂载情况
fdisk -l

  1. 在自行搭建的OpenStack平台上,修改相关参数对openstack平台进行调优操作,相应的调优操作有:

预留前2个物理CPU,把后面的所有CPU分配给虚拟机使用(假设vcpu为16个);

Vim /etc/nova/nova.conf

vcpu_pin_set

#cat /proc/cpuinfo里面的逻辑核数,再x16就是你能够分配给虚拟机的。内存也是类似

cat /proc/cpuinfo | grep "cpu cores" | uniq

#物理 CPU 超售比例,默认是 16 倍,超线程也算作一个物理 CPU,需要根据具体负载和物理 CPU 能力进行综合判断后确定具体的配置

cpu_allocation_ratio = 4.0

#内存分配超售比例,默认是 1.5 倍,生产环境不建议开启超售。

ram_allocation_ratio = 1.0

#内存预留量,这部分内存不能被虚拟机使用

reserved_host_memory_mb = 4096

#磁盘预留空间,这部分空间不能被虚拟机使用

reserved_host_disk_mb = 10240

#服务下线时间阈值,默认60,如果一个节点上的 nova 服务超过这个时间没有上报心跳到数据库,api 服务会认为该服务已经下线,如果配置过短或过长,都会导致误判。

service_down_time = 120

  1. 在自行搭建的OpenStack平台上,执行相关命令,将controller节点的资源加入到OpenStack平台中,即controller节点既是控制节点也是计算节点。

        vim /etc/xiandain/opensrc.sh

        将compute改为controller,compute的IP地址改为controller的IP地址

        iaas-install-nova-compute.sh

  1. 在自行搭建的OpenStack平台上,使用cirros镜像创建云主机vm1,然后将该云主机进行手动迁移,若原来创建在compute节点上的,则迁移至controller节点上;若原来创建在controller节点上的,则迁移至compute节点上。

 迁移的步骤:1、将关于虚拟机的数据移到目标主机(移动之前需要关闭虚拟机)在OpenStack里云主机的数据存放目录是/var/lib/nova/instances/    2、修改数据库文件在nova数据库的instances 表里有记录虚拟机的宿主机的名字,所以需要进入数据库修改该字段为controller

ll /var/lib/nova/instances/
          scp –r <云主机的ID>把它复制到controller节点,把本主机的删除,
          chown -R nova:nova <云主机的ID> 把它的用户和用户组修改成nova

        然后修改数据库文件

        mysql -uroot -p000000
        show databases;  use nova;show tables; select host,node,uuid from instances;
update instances set host='controller',node='controller' where uuid=“查询到要迁移的云主机的uuid”
        select host,node,uuid from instances;
        systemctl restart openstack-nova-compute

  1. 在自行搭建的OpenStack平台上,使用cinder服务创建卷block1,大小为1G,并挂载到云主机vm1上使用。

     cinder volume-create --size 1 block1

     openstack server list  查询

     openstack server add volume block1 <云主机名字>  

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐