• 云计算学习7——云计算OpenStack运维基础


    声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:408797506(微信同号)。


    介绍OpenStack运维的基础知识,主要分析OpenStack云平台运维中的nova、neutron、cinder、swift、Ceilometer、防火墙等服务组件操作。

    1. 完成新建主机nova的流程操作

    1.在openstack私有云平台上,基于cirrors.qcow2镜像,使用命令创建一个名为cirros的镜像

    glance image-create --name "cirros" --disk-format qcow2 --container-format bare --progress --file /opt/openstack/images/CentOS_7.2_x86_64_XD.qcow2
    
    • 1

    2. 使用命令创建一个名为m1.flavor,ID为1234,内存为1024 MB,磁盘为10 GB,vcpu数量为1的云主机类型

    nova flavor-create f1 1234 1024 10 1  
    
    • 1

    3. 使用命令创建云主机外部网络extnet,子网extsubnet,虚拟机浮动 IP 网段为172.18.x.0/24(其中x是考位号), 网关为172.18.x.1

    openstack network create extnet --provider-physical-network provider --provider-network-type flat --external 
    openstack subnet create  extsubnet  --subnet-range 192.168.200.0/24  --network extnet --gateway 192.168.200.2
    
    • 1
    • 2

    4. 使用命令创建云主机内网intnet,子网intsubnet,虚拟机子网 IP 网段为10.10.x.0/24(其中x是考位号),网关为10.10.x.1

    openstack network create intnet --provider-network-type vxlan --provider-segment 1
    openstack subnet create  intsubnet  --subnet-range 10.10.1.0/24  --network intnet --gateway 10.10.1.1
    
    • 1
    • 2

    5. 添加名为 ext-router 的路由器,配置路由接口地址,完成内网子网intsubnet和外部网络extnet的连通
    // 必须先设置路由网关外部网络,再添加内部网络子网接口

    openstack  router create ext-router                                                  
    openstack router set ext-router --external-gateway extnet
    openstack router add subnet ext-router intsubnet
    
    • 1
    • 2
    • 3

    6. 基于“cirros” 镜像、m1.flavor、 intsubnet的网络,绑定浮动IP,通过命令创建一台云主机migration,启动migration,并使用PC机能远程登录到VM1

    nova boot --flavor f1 --image cirros --nic net-name=intnet --security-groups default VM1
    openstack floating ip create extnet --floating-ip-address 192.168.200.104    // 创建出浮动ip  
    openstack server add floating ip VM1  192.168.200.104    // 绑定相应的浮动ip到云主机
    
    • 1
    • 2
    • 3

    7. 创建default规则允许所有TCP、UDP和ICMP
    (1) 使用命令创建安全组:
    openstack security group create all // 创建安全组all
    (2) 添加安全组规则 :openstack security group rule create 使用该命令创建安全组规则

    openstack security group rule create --ingress --protocol udp all
    openstack security group rule create --egress --protocol udp all
    
    • 1
    • 2

    2. nova管理

    1. controller节点既是控制节点也是计算节点,compute节点为计算节点
    (1) 配置controller作为计算节点: 修改配置文件 /etc/xiandian/openrc.sh

    #Compute Node Manager IP. example:x.x.x.x
    HOST_IP_NODE=192.168.100.10
    #Compute Node hostname. example:compute
    HOST_NAME_NODE=controller
    
    • 1
    • 2
    • 3
    • 4

    (2) 在controlle平台 执行命令: iaas-install-nova-compute.sh
    2. 冷迁移(将该云主机冷迁移到另一个计算节点)
    前提:配置两个计算节点,可以配置controller既是控制节点也是计算节点
    如何理解迁移:在compute节点故障的时候,不影响云主机的正常使用。
    (1) 创建完云主机后,关闭云主机。然后进入compute节点查看云主机实例: cd /var/lib/nova/instances/
    (2) 复制实例到controller节点,注意实例ID是对应的云主机id编号:

     scp -r 1c90f1e2-15d1-4c28-b656-443acf0f1c5d/ controller:/var/lib/nova/instances/
    
    • 1

    (3) 修改用户权限(在controller节点操作):

    chown -R nova:nova 1c90f1e2-15d1-4c28-b656-443acf0f1c5d  
    
    • 1

    (4) 进入controller节点修改数据库信息

    >mysql -u root -p			>use nova				>select * from instances \G
    [nova]> update instances set host='controller',node='controller' where uuid='1c90f1e2-15d1-4c28-b656-443acf0f1c5d ';
    [nova]> flush privileges;
    
    • 1
    • 2
    • 3

    (5) 测试:关闭compute虚拟机节点,然后进入controller节点启动nova:
    nova start 1c90f1e2-15d1-4c28-b656-443acf0f1c5d // 成功启动说明迁移成功。
    3. 在openstack私有云平台上,将云主机VM1保存为qcow2格式的快照并保存到controller节点/root/cloudsave目录下

    vi /etc/glance/glance-api.conf 
    
    • 1

    用命令查看这个文件glance-api.conf 的filesystem_store_datadir 选项存储镜像所在的路径,如下:
    /var/lib/glance/images
    然后通过dashboard创建快照或命令创建快照,然后把对应/var/lib/glance/images/目录下的快照移动到/root/cloudsave目录下即可

    3.Cinder存储

    准备工作:
    创建磁盘和分区:在compute节点增加一块磁盘,然后使用 fdisk /dev/sdb命令分两个区,一个分区用于cinder,一个分区用于swift。
    配置和安装脚本: 在controller节点执行 iaas-install-cinder-controller.sh, 在compute节点执行 iaas-install-cinder-compute.sh。
    1.在openstack私有云平台上,创建一个名为“lvm”的卷类型,创建1块卷类型为lvm的10G云盘,并附加到虚拟机VM1上。
    在云主机VM1上,对附加的云盘进行分区格式化后,永久挂载到/opt目录下
    (1) 创建卷cinder

    openstack volume type create lvm
    openstack volume create  --type lvm --size 10 v1
    openstack volume list
    
    • 1
    • 2
    • 3

    (2) 将云硬盘绑定到云主机上

    openstack server add volume VM1 v1
    
    • 1

    (3) 进入云主机VM1 查看: fdisk -l (假设/dev/vdb):
    (4) 进行分区,然后格式化

    > fdisk /dev/vdb     		// 分区               > mkfs.ext3 /dev/vdb1    // 格式化第一分区
    
    • 1

    (5) 修改/etc/fstab文件,永久挂载

    > echo "/dev/vdb1 /opt ext3 defaults 0 0">> /etc/fstab                 或者 vi  /etc/fstab 添加一行
    
    • 1

    2. cinder卷扩容

    # lsblk     				       # pvs  显示物理卷   		# vgs   显示卷组         
    # fdisk /dev/sdb  			       磁盘分区					# pvcreate /dev/sdb1                 创建物理卷
    # vgcreate cinder-volumes /dev/sdb1    使用vgcreate命令创建卷组		# vgextend cinder-volumes /dev/sdb1    卷组扩容,点击对应路径下的物理卷 
    
    • 1
    • 2
    • 3

    4. swift容器对象存储

    准备工作:
    创建磁盘和分区:在compute节点增加一块磁盘,然后使用 fdisk /dev/sdb命令分两个区,一个分区用于cinder,一个分区用于swift。
    配置和安装脚本: 在controller节点执行 iaas-install-swift-controller.sh, 在compute节点执行 iaas-install-swift-compute.sh 。

    1. 用openstack命令,创建名为examtest的容器并查询,上传一个aaa.txt(可自行创建)文件到这个容器中并查询

    openstack container create examtest
    openstack object create examtest aaa.txt
    openstack object list examtest
    
    • 1
    • 2
    • 3

    2. 在controller节点上新建名为Chinaskill的容器,并获取该容器的存放路径;将 centos7_5.qcow2 镜像上传到chinaskill容器中,并设置分段存放, 每一段大小为 10M。

    swift post Chinaskill
    swift upload Chinaskill --use-slo --segment-size 10485760 /opt/openstack/images/CentOS_7.2_x86_64_XD.qcow2
    
    • 1
    • 2

    5. Ceilometer管理

    登录云主机, 使用Ceilometer命令,查看该云主机有哪些meter,然后使用Ceilometer命令查看该云主机cpu使用率的最近2两条数据:

    nova list
    ceilometer meter-list -q resource="6dc8b4ec-4aac-4aa2-a417-24c18da78de0"
    ceilometer sample-list -m  cpu_util  -q resource="6dc8b4ec-4aac-4aa2-a417-24c18da78de0" -l 2
    
    • 1
    • 2
    • 3

    6. 防火墙管理

    登录http://192.168.100.10/dashboard
    (1)创建名为nginx的防火墙;
    (2)添加防火墙规则nginx-80,放行所有源IP、源端口、目的IP、目的端口为80的报文;
    (3)创建防火墙策略nginx-policy,添加nginx-80规则。
    使用neutron命令查询防火墙详细信息、策略详细信息、规则详细信息,

    neutron firewall-rule-create --name nginx80 --protocol tcp --destination-port 80 --action allow
    neutron firewall-policy-create --firewall-rule nginx80  nginx-policy
    neutron firewall-create nginx-policy --name nginx
    neutron firewall-policy-show nginx-policy
    neutron firewall-rule-show nginx80
    
    • 1
    • 2
    • 3
    • 4
    • 5

  • 相关阅读:
    vulfocus——drupal1代码执行(CVE-2018-7600)
    解密数仓的SQL ON ANYWHERE技术
    提升程序运行速度-计算加速的20种方法
    C语言实现动态栈
    vue - Vue脚手架(终结篇)/ vue动画
    2023-11-09 mysql-代号m-事务-添加RC隔离级别-需求分析
    SpringCloud(九)——RabbitMQ简单了解
    腾讯云AI超级底座新升级:训练效率提升幅度达到3倍
    5自由度串联机械臂实现颜色分拣功能
    指针定义等概念
  • 原文地址:https://blog.csdn.net/eryunyong/article/details/126008481