OpenStack云平台管理

news2024/12/22 22:59:14

OpenStack云平台管理

文章目录

  • OpenStack云平台管理
    • 资源列表
    • 基础环境
    • 一、部署Openstack
    • 二、创建网络和路由
      • 2.1、删除默认的网络
      • 2.2、创建网络和路由
        • 2.2.1、创建外部网络
        • 2.2.2、创建内部网络
      • 2.3、创建路由
    • 三、创建实例
      • 3.1、配置实例
      • 3.2、配置NAT转换
    • 四、绑定浮动IP地址
    • 五、添加安全组规则
    • 六、创建密钥对
    • 七、创建及使用挂在卷
    • 八、快照管理
      • 8.1、基于实例的快照
      • 8.2、基于卷的快照
    • 九、创建镜像

资源列表

操作系统配置主机名IP磁盘版本
CentOS 7.910C12Gopenstack192.168.93.109100GTrain版本

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname openstack

一、部署Openstack

  • 可参考上节文档进行安装,安装完成后使用管理员账号登录openstack的Web控制台

二、创建网络和路由

  • 通过packstack部署openstack环境成功后,默认已经配置了网络、路由、实例类型以及镜像等功能,并且可以直接使用,以方便直接体验openstack。本章主要带领读者学习openstack各功能的实现方法。所以首先删除默认创建的网络,再重新创建新的网络

2.1、删除默认的网络

  • openstack安装完成后默认会有两个网络,分别是外部网络public(172.24.4.0/24)、内部网络private(10.0.0.0/24).外部网络不能直接删除,会提示报错西悉尼,原因是存在默认的路由器(demo项目)且已经连接到该网络。在删除之前应该首先删除连接该网络的路由器接口,或者直接删除存在的路由器。管理员用户登录openstack控制台后,无法在“项目”选项卡中配置demo项目下的路由器。需要进入“管理员”选项卡

  • 控制台依次单击“管理员”——“网络”——“路由”选项卡,选中虚拟路由器route1前面的复选框,并单击右上角的“删除路由”按钮
    在这里插入图片描述

  • 删除路由器后,依次单击“管理员”——“网络”——“网络”选项阿卡,选中默认存在的public和private网络,并单击右上角的“删除网络”按钮,删除默认存在的网络
    在这里插入图片描述

  • 至此,完成了网络和路由器的删除操作

2.2、创建网络和路由

  • 创建云主机之前,首先要创建用于连接云主机的内部网络,以及用于实现云主机访问外部网络和路由器和外部网络。创建步骤为线创建外部网络和内部网络以对应的子网,再创建路由器连接外部网络和内部网络。创建外部网只能在“管理员”——“网络”选项卡中操作,创建内部网络可以在“管理员”——“网络”——“网络” 或 “项目”——“网络”——“网络”选项卡中操作
2.2.1、创建外部网络
  • 依次单击“管理员”——“网络”——“网络”选项卡,完成后单击右上角“+创建网络”按钮,弹出创建网络界面,在“名称”字段填写pubilc,“项目”选择admin,“供应商网络类型”字段选择Flat,物理网络填写“extnet”,并**勾选“外部网络”**复选框。完成后单击“下一步”按钮
    在这里插入图片描述

  • 外部网络设置行完成后,在创建子网页面,依次填写**“子网名称”、“网络地址”和“网关IP”输入框。其中“网络地址处”为云主机所在的内部网络的IP地址段,可以由管理员自定定义。完成后单击“下一步”**按钮
    在这里插入图片描述

# 以本机的br-ex网卡进行填写
[root@openstack ~]# ifconfig br-ex
br-ex: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.24.4.1  netmask 255.255.255.0  broadcast 172.24.4.255
        inet6 fe80::44fb:fcff:febf:d45  prefixlen 64  scopeid 0x20<link>
        ether 46:fb:fc:bf:0d:45  txqueuelen 1000  (Ethernet)
        RX packets 5  bytes 140 (140.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14  bytes 908 (908.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 注意:“网关IP”字段为空表示默认使用网络中第一个IP地址,如X.X.X.1,也可以自行指定其他IP地址。如果不需要云主机通过该网络访问其他网络,可以勾选**“禁用网关”**复选框

  • 在**“子网详情”选项卡中,取消勾选“激活DHCP”复选框,其他字段可以保持默认设置,因为外部网络和云主机网络属于不同的网段,也不需要给云主机分配IP地址、DNS等参数。直接单击“创建”**按钮
    在这里插入图片描述

  • 页面将返回到public网络的子网列表页面,显示当前创建成功的子网信息
    在这里插入图片描述

2.2.2、创建内部网络
  • 外部网络创建成功后,下面开始创建内部网络。内部网络用于连接云主机实例,建立配置DHCP,用于向云主机分配网络参数

  • 依次单击**“项目”——“网络”——“网络”选项卡,页面中间将显示之前创建成功的外部网络“public”。单击右上角“+创建网络”按钮,开始创建内部网络。在弹出的创建网络页面,填写“网络名称”为private**,确保选中**“创建子网”**复选框,完成后单击“下一步“按钮
    在这里插入图片描述

  • 在接下来的**”子网“选项卡也买你,根据管理员规划,依次填写”子网名称“、”网络地址“以及”网关IP“输入框**。”网关IP输入框留空默认使用网路中第一个IP地址“。如果不需要该网络中的云主机访问外部网络,可以勾选”禁用网关“复选框。完成后单击**”下一步“**按钮
    在这里插入图片描述

  • 在**”子网详细“选项卡页面,确保勾选”激活DHCP“复选框,并填写”分配地址池“和”DNS服务器“**输入框。配置该网络可以向云主机分配IP地址和DNS地址。完成后单击”**创建“**按钮
    在这里插入图片描述

  • 完成后将返回网络列表页,显示当前已经创建成功的网络
    在这里插入图片描述

2.3、创建路由

  • 网络创建完成后,还需要创建路由器实现内部网络和外部网络之间的转发

  • 依次单击**”项目“——”网络“——”路由“选项卡,并单击页面右上角”+新建路由“按钮,在弹出的”新建路由“页面,填写”路由名称“输入框,并选择外部网络为之前创建的”public“。完成后,单击”新建路由“按钮,新创建的路由器默认开启SNAT功能**
    在这里插入图片描述

  • 完成后将返回路由列表页面。显示当前创建成功的路由器
    在这里插入图片描述

  • 成功创建路由并选择外部网络之后,将自动创建连接外部网络的接口,还需要创建连接内部网络的接口。单击路由器名称**”route“超链接**,进入路由详细信息页面。单击**”接口“选项卡,并单击页面右上角”+增加接口“按钮。在弹出的”增加接口“页面中,”子网“下拉菜单选择之前创建成功的内部网络”private:192.168.93.0/24(private_subnet)“”IP地址“留空默默人为private网路中配置的网关地址**。完成后,单击”提交“按钮
    在这里插入图片描述

  • 页面将返回到路由器接口列表页面,显示当前的路由器接口。如果接口处于显示为”Down“可刷新页面,正常状态为”运行中“
    在这里插入图片描述

三、创建实例

3.1、配置实例

  • packstack一键部署openstack完成后,默认存在实例类型和镜像配置。实例类型的作用是对云主机进行资源限制。镜像用于生成云主机操作系统。当存在网络、路由、实例类型以及镜像之后,就可以创建云主机了。不过在创建之前,要线检查下**”项目“——”计算“——”镜像“**选项卡下的cirros这个镜像的大小,正常大小为几十兆。如果为几百K,参考上一章文档进行替换

  • 依次单击**”项目“——”计算“——”实例“选项卡,页面右边单击”创建实例“按钮,在弹出的创建实例页面,填写”实例名称“test**。完成后单击**”下一步“**按钮
    在这里插入图片描述

  • 在**”源“选项卡页面,”选择源“下拉菜单中选择”image“,创建新卷位置选择”不“(如果需要持久化,选择”是”)。在“可用配额”下面的镜像列表中,单击名称为“cirros01”**镜像右边的箭头,确保其位于已分配下面。完成后单击“下一步”按钮
    在这里插入图片描述

  • 在**“实例类型”选项卡页面中间区域,单击资源占用最少的“m1.tiny”实例类型右边的箭头,确保其位于已分配下面。完成后单击“下一步”**按钮
    在这里插入图片描述

  • 在**“网络”选项卡页面中间,单击之前创建的内部网络“private”**右边的箭头,确保其位于已分配下面

  • **“安全组”**选项默认勾选

  • 当完成**“详情”“源“”实例列表“”网络“四个必须选项卡之后,其他可选配置选项卡可保持默认,直接单击”创建实例“**按钮
    在这里插入图片描述

  • 页面将返回到实例列表也买你,并基于之前的配置创建实例,创建的实时信息可查看”认为有“一栏中的动态显示内容。创建成功后云主机将获得一个IP地址
    在这里插入图片描述

  • 在实例**”test“**右边”创建快照“傍边的下拉菜单中选择”控制台“,进入云主机控制台,根据终端提示信息键入用户名和密码登录云主机控制台,并查看当前云主机的IP地址

  • 用户名:cirros 密码:gocubsgo
    在这里插入图片描述

  • 此时云主机是不能访问外网的
    在这里插入图片描述

宿主机的br-ex网卡用于连接opensatck虚拟网络,但是虚拟网络访问互联网必须经过宿主机的真实网卡ens33,宿主机在br-ex和ens33之间转发流量可以通过三种方式

  • 将ens33网卡加入br-ex网桥,取消ens33配置的IP地址,配置br-ex为宿主机外部网络的IP地址,这种方式需要修改外部网络public的网段地址

  • 开启宿主机的路由转发,通过路由转发数据,同时配置宿主机的回包路由

  • 配置宿主机的NAT功能,通过路由加地址转换转发数据,不需要回包路由,不需要修改现有网段

3.2、配置NAT转换

  • 下面基于第三种方式进行介绍。添加一条nat规则。为了避免重启规则小时,可以将其写道iptables配置文件。注意:-o ens33参数需要根据实际的宿主机网卡名称来配置。命令如下。–comment ”000 nat“表示添加注释文字
[root@openstack ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@openstack ~]# iptables -t nat -A POSTROUTING -s 172.24.4.0/24 -o ens33 -m comment --comment "000 nat" -j MASQUERADE
[root@openstack ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
  • 再次测试云主机和互联网的连通性
    在这里插入图片描述

四、绑定浮动IP地址

  • 经过前面的配置,云主机已经可以访问外部网络,但是外部网络还不能访问云主机。无论是宿主机还是外部网络设备,都没有云主机网络的路由条目。根据之前的介绍,创建的虚拟路由器连接外部网络后默认启用SNAT(源地址转换)。若要访问NAT设备身后的网络,需要通过配置NAT映射或目录地址转换实现,即需要配置浮动IP地址

  • 依次单击**”项目“——”网络“——”浮动IP“选项卡,在页面右边单击”分配IP给项目“按钮,将弹出分配浮动IP页面,在页面中选择”资源池“”public“**,并单击”分配IP“按钮
    在这里插入图片描述

  • 页面将返回到浮动IP列表页面,显示成功分配的浮动IP地址列表
    在这里插入图片描述

  • 上图显示已经成功分配了IP地址172.24.4.154。下面将该浮动IP地址分配给云主机。单击浮动IP地址右边的”关联“按钮,并在弹出的”管理浮动IP的关联“页面中,选择”待连接的端口“下拉菜单,并选择”test“云主机。完成后单击”关联“按钮
    在这里插入图片描述

  • 根据浮动IP列表页面中的显示信息可得知,已经成功的将浮动IP地址和云主机绑定
    在这里插入图片描述

  • 切换到”项目“——”计算“——”实例“选项卡,可以看到云主机”test“绑定了浮动IP地址172.24.4.154
    在这里插入图片描述

  • 绑定浮动IP地址后,理论上可以从外部网络访问云主机,但是还需要配置安全组规则

五、添加安全组规则

  • 安全组的作用是保护云主机的安全,openstack有一个默认安全组default、从数据包方向分为入口和出口,访问云主机的入口流量必须要经过安全组规则放行流量

  • 依次单击**”项目“——”网络“——”安全组“选项阿卡,页面中间默认的安全组规则default,单击其右边的”管理规则“**按钮
    在这里插入图片描述

  • 在default安全组规则列表页面,默认存在四条规则
    在这里插入图片描述

  • 单击页面右上角**”+添加规则“按钮,在弹出的”添加规则“页面,选择”规则“为”ALL ICMP“,”方向“选择”入口“,其他保持默认,完成后单击”添加“**按钮
    在这里插入图片描述

  • 页面将返回到default安全组规则列表也买你,最后部分显示添加成功的安全组规则
    在这里插入图片描述

  • 配置完浮动IP地址和安全组规则后,尝试从外部网络(宿主机以外的网络,此处以宿主机代替)访问云主机。访问的目标云主机所绑定的浮动IP地址。测试的命令结果如下所示

[root@openstack ~]# ping 172.24.4.154
PING 172.24.4.154 (172.24.4.154) 56(84) bytes of data.
64 bytes from 172.24.4.154: icmp_seq=1 ttl=63 time=6.19 ms
64 bytes from 172.24.4.154: icmp_seq=2 ttl=63 time=0.969 ms
64 bytes from 172.24.4.154: icmp_seq=3 ttl=63 time=0.387 ms
^C
--- 172.24.4.154 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.387/2.517/6.195/2.611 ms
  • 为了可以让管理员从外部网络通过SSH协议管理云主机,同理与添加ICMP规则相同。通过添加规则,放行外部网络访问云主机的入口SSH协议流量。添加SSH规则页面入下图所示。
    在这里插入图片描述
    在这里插入图片描述

  • 管理员在宿主机尝试通过SSH命令远程登录云主机,测试命令及结果如下

[root@openstack ~]# ssh cirros@172.24.4.154
The authenticity of host '172.24.4.154 (172.24.4.154)' can't be established.
ECDSA key fingerprint is SHA256:Rx6vufr8QLw0DMtUdRYqnnEA64T8Dq7Wjtpnd7EphUM.
ECDSA key fingerprint is MD5:a1:ad:e5:18:20:18:dd:48:ef:2a:11:3e:ba:81:67:b7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.24.4.154' (ECDSA) to the list of known hosts.
cirros@172.24.4.154's password:     # 密码gocubsgo
# 登录成功执行命令
$ ifconfig 
eth0      Link encap:Ethernet  HWaddr FA:16:3E:44:DB:9F  
          inet addr:192.168.93.172  Bcast:192.168.93.255  Mask:255.255.255.0
          inet6 addr: fe80::f816:3eff:fe44:db9f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1
          RX packets:125 errors:0 dropped:0 overruns:0 frame:0
          TX packets:183 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14943 (14.5 KiB)  TX bytes:16879 (16.4 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

六、创建密钥对

  • 密钥对是openstack提供的一个安全认证功能,用户可以在创建云主机的时候选择添加密钥对,管理员在访问云主机的时候可以免密码登录。免密码登录并不意味着安全性的降低,因为密钥对的攻破难度比密码要大很多

  • 依次打开**“项目”——“计算”——“密钥对”选项卡,在密钥对列表单击“+创建密钥对”**按钮
    在这里插入图片描述

  • 在**“创建密钥对”页面,输入密钥对名称“my-auth”,密钥类型选择“SSH密钥”完成后单击“创建密钥对”**按钮
    在这里插入图片描述

  • 密钥对创建完成后,浏览器会自动下载my-auth.pem文件。my-auth.pem将是该云主机的私钥文件。通过云主机绑定该密钥对,并复制该私钥文件到管理端,从而实现远程免密码连接云主机。下面通过宿主机使用密钥登录云主机

  • 在宿主机上创建cirros用户并设置权限

[root@openstack ~]# useradd cirros
[root@openstack ~]# mkdir /home/cirros/.ssh
  • 将my-auth.pem文件上传到宿主机/home/cirros/.ssh目录下,重命名为id_rsa文件
[root@openstack ~]# mv /home/cirros/.ssh/my-auth.pem /home/cirros/.ssh/id_rsa
[root@openstack ~]# chmod 700 /home/cirros/.ssh/
[root@openstack ~]# chown -R cirros:cirros /home/cirros/.ssh/
[root@openstack ~]# chmod 600 /home/cirros/.ssh/id_rsa
  • 要使用密钥对,需要重新创建一台云主机。如果资源不够可删除之前创建的测试云主机。然后选择刚刚创建的密钥对,完成后随便绑定一个个浮动IP地址到云主机。尝试在宿主机使用密钥对登录云主机
    在这里插入图片描述
    在这里插入图片描述

  • 执行一下命令使用密钥对登录

# 浮动IP地址
[root@openstack ~]# su - cirros 
[cirros@openstack ~]$ ssh 172.24.4.241
The authenticity of host '172.24.4.241 (172.24.4.241)' can't be established.
ECDSA key fingerprint is SHA256:qEKn0GKP9sqQqKlZQ5rp0c0wZvjFNGLfo7f6TqbFlXQ.
ECDSA key fingerprint is MD5:bc:9d:36:0d:44:cd:00:f0:6b:73:72:4a:36:81:9f:90.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.24.4.241' (ECDSA) to the list of known hosts.
$ ifconfig 
eth0      Link encap:Ethernet  HWaddr FA:16:3E:AB:EE:95  
          inet addr:192.168.93.120  Bcast:192.168.93.255  Mask:255.255.255.0
          inet6 addr: fe80::f816:3eff:feab:ee95/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1
          RX packets:95 errors:0 dropped:0 overruns:0 frame:0
          TX packets:142 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12905 (12.6 KiB)  TX bytes:13714 (13.3 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

# 在上述命令中,通过ssh工具远程连接云主机没有输入任何密码信息,但是不具备私钥文件的客户端无法正常通过SSH协议远程连接云主机

七、创建及使用挂在卷

  • openstack通过Cinder提供块存储服务。管理员可根据需要对云主机添加卷。卷是一个块设备,由云主机挂载使用。本次的案例环境是一个单击环境。如果启用卷设备,那么Cinder将会占用所有的可用空间

  • 首先创建一个卷,依次打开“项目”——“卷”——“卷”选项卡,页面右边单击**“+创建卷”**按钮
    在这里插入图片描述

  • 在弹出的**”创建卷“页面中,填写卷名称为“test-lv”,大小为“2”,其他保持默认。完成后单击“创建卷”**按钮
    在这里插入图片描述

  • 页面将返回卷列表页面,显示当前创建成功的卷信息
    在这里插入图片描述

  • 卷创建好之后,还需要和实例管理才可以使用。单击上图中的**“编辑卷”旁边的下拉菜单,选择“管理连接”。在弹出的“管理已连接卷”页面,选择“连接到实例”为之前创建的云主机“test”。完成后单击“连接卷”**按钮
    在这里插入图片描述

  • 在随后的卷列表页面,显示当前卷已经连接到云主机test上的/dev/vdb设备
    在这里插入图片描述

  • 进入test云主机控制台,执行fdisk命令查看磁盘情况

$ sudo fdisk -l
Disk /dev/vda: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 92674365-8FD5-41C2-B173-9F3F1E3BA5A1

Device     Start     End Sectors  Size Type
/dev/vda1  18432 2097118 2078687 1015M Linux filesystem
/dev/vda15  2048   18431   16384    8M EFI System

Partition table entries are not in disk order.

###################################################################
Disk /dev/vdb: 2 GiB, 2147483648 bytes, 4194304 sectors
###################################################################
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
  • 在云主机控制台中。对/dev/vdb进行分区、格式化,并挂载到/mnt目录
# 一路回车,步骤省略
$ sudo fdisk /dev/vdb
$ sudo mkfs /dev/vdb1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 524032 4k blocks and 131072 inodes
Filesystem UUID: 851b4a73-8fd8-4f11-b2f5-9e3ae7e00804
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done 
$ sudo mount /dev/vdb1 /mnt/
$ df -hT
Filesystem           Type            Size      Used Available Use% Mounted on
/dev                 devtmpfs      231.7M         0    231.7M   0% /dev
/dev/vda1            ext3          985.9M     31.4M    922.9M   3% /
tmpfs                tmpfs         238.8M         0    238.8M   0% /dev/shm
tmpfs                tmpfs         238.8M     80.0K    238.7M   0% /run
/dev/vdb1            ext2            2.0G      3.0M      1.9G   0% /mnt

  • 在/mnt目录写入一个test.txt文件
$ sudo vi /mnt/test.txt
2G
$ sudo cat /mnt/test.txt 
2G
  • 注意:创建卷的时候指定的容量大小并不会立即占用磁盘空间,当卷中有数据时才会真正占用

  • 当云主机的卷空间不足时,需要对卷进行扩容,扩容之前首先对卷进行分离,在卷列表页面中单击卷的**“管理连接”,在弹出的“管理已连接卷”页面,单击卷对应的“分离卷”**按钮
    在这里插入图片描述

  • 在确认分类卷页面继续单击**“分离卷”**按钮
    在这里插入图片描述

  • 当前卷断开后,在对应的下拉菜单中选择**“扩展卷”。在弹出的扩展卷页面中,填写卷的新大小为“3”.完成后单击“扩展卷”**按钮
    在这里插入图片描述

  • 返回到卷列表页面,页面中卷大小信息已经更新为3G
    在这里插入图片描述

  • 继续在卷对应的下拉菜单中选择**“管理连接”,重新连接到云主机实例“test”**
    在这里插入图片描述

  • 登录test云主机控制台,尝试访问之前创建的test.txt文件,test.txt文件已经不存在。同时,新出现了vdc分区,其大小为3G,执行以下命令和结果如下所示

$ ls /mnt/test.txt
ls: /mnt/test.txt: Input/output error
$ sudo fdisk -l
Disk /dev/vda: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 92674365-8FD5-41C2-B173-9F3F1E3BA5A1

Device     Start     End Sectors  Size Type
/dev/vda1  18432 2097118 2078687 1015M Linux filesystem
/dev/vda15  2048   18431   16384    8M EFI System

Partition table entries are not in disk order.


Disk /dev/vdc: 3 GiB, 3221225472 bytes, 6291456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1dc7a442

Device     Boot Start     End Sectors Size Id Type
/dev/vdc1        2048 4194303 4192256   2G 83 Linux
  • 扩展后多出的1G的空间默认没有被分区。即只扩展了磁盘大小,并没有改变分区大小。卸载/dev/vdb1分区,挂载/dev/vdc1分区。完成后查看test.txt内容正常。为了使用新扩展的1G空间,需要重启云主机
$ sudo umount -l /mnt
$ sudo mount /dev/vdc1 /mnt
$ sudo cat /mnt/test.txt 
2G
$ sudo reboot
  • 云主机启动后,卷将被重新识别为/dev/vdb,需要重新挂载使用。新增加的/dev/vdb2分区还需要格式化才能挂载使用
$ sudo mkdir /data
$ sudo fdisk /dev/vdb
$ sudo mkfs /dev/vdb2
$ sudo mount /dev/vdb2 /data/
$ sudo mount /dev/vdb1 /mnt/
$ df -hT
Filesystem           Type            Size      Used Available Use% Mounted on
/dev                 devtmpfs      231.7M         0    231.7M   0% /dev
/dev/vda1            ext3          985.9M     31.4M    922.9M   3% /
tmpfs                tmpfs         238.8M         0    238.8M   0% /dev/shm
tmpfs                tmpfs         238.8M     76.0K    238.7M   0% 
/run
###################################################################
/dev/vdb2            ext2         1007.9M      1.3M    955.4M   0% /data
/dev/vdb1            ext2            2.0G      3.0M      1.9G   0% /mnt
###################################################################

八、快照管理

  • 快照可以分为基于实例的快照和基于卷的快照两种类型。实例快照保存在Glance中,而卷快照保存在本地存储

8.1、基于实例的快照

  • 需要注意所需实例要不带或者先卸载卷,若带卷会导致实验失败

  • 首先在当前云主机创建一个test.txt文件,并且写入内容

$ echo test > test.txt
$ cat test.txt 
test
$ ifconfig 
eth0      Link encap:Ethernet  HWaddr FA:16:3E:AB:EE:95  
          inet addr:192.168.93.172  Bcast:192.168.93.255  Mask:255.255.255.0
          inet6 addr: fe80::f816:3eff:feab:ee95/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1
          RX packets:381 errors:0 dropped:0 overruns:0 frame:0
          TX packets:383 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:37682 (36.7 KiB)  TX bytes:37290 (36.4 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  • 然后创建一个实例快照,通过该实例快照启动一个全新的云主机。首先在**“实例列表”**页面,单击实例test01(使用任意没有挂载卷的云主机即可)对应的“创建快照”按钮
    在这里插入图片描述

  • 在弹出的“创建快照”页面,输入快照名称“test-snap”,并单击“创建快照”按钮
    在这里插入图片描述

  • 也买你将自动进入**“镜像”**页面,并在列表的最后生成一个新的镜像,其状态可能一直处于排队状态,可刷新页面解决
    在这里插入图片描述

  • 实例快照创建完成之后,通过该快照重新生成云主机。单击镜像后面的**“启动”按钮,在弹出的“创建实例”页面,实例名称添加“test01”。在“源”选项卡页面中,“选择源”下拉列表选择“实例快照”,并在下面选择名称“test-snap”**的快照,其他配置参数前面的步骤。完成后单击“创建实例”按钮
    在这里插入图片描述

在这里插入图片描述

  • 登录test01云主机控制台
[root@openstack ~]# ssh cirros@172.24.4.66
cirros@172.24.4.66's password: 		# 密码:gocubsgo
$ cat test.txt
test
# 上述命令输出结果显示,通过实例快照创建的云主机 test01和云主机test数据一致

8.2、基于卷的快照

  • 删除之前创建的**“test01”云主机,重新创建云主机“test01”,在云主机创建过程中在“源”选项卡页面选择“创建新卷”,大小1GB。创建完成后在”项目“——”卷“——”卷“**页面中出现一个新的卷,实例test01将存储在Cinder块里

  • 其他配置参考上面的步骤
    在这里插入图片描述
    在这里插入图片描述

  • 登录test01云主机控制台,创建一个test.txt文件,写入test01内容如下

[root@openstack ~]# ssh cirros@172.24.4.3
cirros@172.24.4.3's password: 	# 密码:gocubsgo
$ echo "test01" > test.txt
$ cat test.txt 
test01
  • 进入**”项目“——”卷“——”卷“页面,对上面的卷做一个快照,在编辑卷右侧下拉框选择”创建快照“,名称叫做”test01-lv-snap“,创建过程中会提示”这个卷已经被连接到某个实例了“。正确的做是先将卷分离出来,再创建卷快照。因为test01云主机是实现环境并且没有应用对卷实时写入文件,所以忽略该提示。直接单击”创建卷快照(强制)“**按钮
    在这里插入图片描述

  • 在卷快照列表页面可以看到创建成功的快照信息
    在这里插入图片描述

  • 通过该卷快照,在创建卷右侧下拉框选择**”创建实例“,实例名称”test02“,在”源“页面选择”卷快照“**,完成后登录test02云主机控制台执行如下命令

[root@openstack ~]# ssh cirros@172.24.4.100
cirros@172.24.4.100's password: 	# 密码:gocubsgo
$ cat test.txt
test01
$ ifconfig 
eth0      Link encap:Ethernet  HWaddr FA:16:3E:EE:18:7E  
          inet addr:192.168.93.126  Bcast:192.168.93.255  Mask:255.255.255.0
          inet6 addr: fe80::f816:3eff:feee:187e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1
          RX packets:128 errors:0 dropped:0 overruns:0 frame:0
          TX packets:158 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15933 (15.5 KiB)  TX bytes:15881 (15.5 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  • 上述命令显示,通过卷快照生成的云主机除了IP地址外,和之前的云主机内容一致。同时,在卷列表页面将会多出一个test02使用的卷
    在这里插入图片描述

  • 无论是实例快照还是卷快照,都可以用来生成全新的云主机,在生产环境中通常通过快照对云主机进行备份或迁移

九、创建镜像

  • 本次使用的是官方下载的CentOS镜像(CentOS-7-x86_64-GenericCloud-1802.qcow2)。依次打开**”管理员“——”计算“——”镜像“选项卡页面,单击”创建镜像“按钮,填写镜像名称,在”文件“位置通过浏览器选择下载的镜像文件,镜像格式选择”QCOW2-QEMU模拟器“,完成后单击”创建镜像“**按钮
    在这里插入图片描述

  • 创建过程会出现进度条,创建成功页面如图
    在这里插入图片描述

  • 镜像导入成功后,可以通过该镜像生成基于CentOS 7操作系统的云主机,需要注意,要同时给该镜像选择或创建适合的实例类型。可以通过密钥对的方式免密码登录基于该镜像的语和主机,默认存在centos用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1796678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nacos的下载使用

下载 本地Java8Maven环境 下载地址 https://github.com/alibaba/nacos/releases使用 解压安装包&#xff0c;直接运行bin目录下的startup.cmd 账号密码都是nacos

iphone突然黑屏?3种方法解决问题!

iphone突然黑屏这应该是出现了iOS系统故障。一般来说&#xff0c;无摔落、浸水等情况造成设备出现硬件问题&#xff0c;多半是设备出现了系统故障。 虽然苹果iOS系统性能是较优的&#xff0c;但还是可能因各种使用情况出现不一样的iOS系统问题&#xff0c;包括升级、越狱、安装…

Python疑难杂症--考试复习

1.排序输出字典中数据 dic1 {Tom:21,Bob:18,Jack:23,Ana:20} dic2 {李雷:21,韩梅梅:18,小明:23,小红:20} nint(input()) if n>len(dic1):nlen(dic1) print(sorted(dic1.keys())[:n]) print(sorted(dic2.items(),keylambda item:item[1])[:n]) 2.罗马数字转换 def F(s):d{…

GPT-4o如何重塑AI未来!

如何评价GPT-4o? 简介&#xff1a;最近&#xff0c;GPT-4o横空出世。对GPT-4o这一人工智能技术进行评价&#xff0c;包括版本间的对比分析、GPT-4o的技术能力以及个人感受等。 GPT-4o似乎是一个针对GPT-4模型进行优化的版本&#xff0c;它在性能、准确性、资源效率以及安全和…

Ubuntu22.04之安装emacs29.3版本(二百四十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

vulnhub靶机实战_DC-2

下载 靶机下载链接汇总&#xff1a;https://download.vulnhub.com/使用搜索功能&#xff0c;搜索dc类型的靶机即可。本次实战使用的靶机是&#xff1a;DC-2下载链接&#xff1a;https://download.vulnhub.com/dc/DC-2.zip 启动 下载完成后&#xff0c;打开VMware软件&#xf…

docker安装rabbitmq详解

目录 1、安装 1-1.查看rabbitmq镜像 1-2.下载Rabbitmq的镜像 1-3.创建并运行rabbitmq容器 1-4.查看启动情况 1-5.启动web客户端 1-6.访问rabbitmq的客户端 2..遇到的问题 解决方法: 1、安装 1-1.查看rabbitmq镜像 docker search rabbitmq 1-2.下载Rabbitmq的镜像 拉…

UE4_Ben_图形52_水下效果处理

学习笔记&#xff0c;不喜勿喷&#xff0c;欢迎指正&#xff0c;侵权立删&#xff01;祝愿生活越来越好&#xff01; 在这个后期处理的效果中&#xff0c;我们可以看到有很多不同的&#xff0c;这里有浓雾&#xff0c;波纹扭曲&#xff0c;镜头扭曲和边缘模糊&#xff0c;在第4…

实验五、IPv4地址的子网划分,第1部分《计算机网络》

但凡你有点本事&#xff0c;也不至于一点本事都没有。 目录 一、实验目的 二、实验内容 三、实验小结 一、实验目的 完成本练习之后&#xff0c;您应该能够确定给定 IP 地址和网络掩码 的网络信息。本练习旨在让您掌握如何根据给定 IP 地址计算网络 IP 地址信息。 二、实验…

C# E2Pose人体关键点检测(OpenVINO推理)

C# E2Pose人体关键点检测(OpenVINO推理) 目录 效果 模型信息 项目 代码 下载 效果 模型信息 Inputs ------------------------- name&#xff1a;inputimg tensor&#xff1a;Float[1, 3, 512, 512] --------------------------------------------------------------- Ou…

构建自动化API数据抓取系统

构建一个自动化API数据抓取系统是一个涉及多个技术领域的复杂任务。这样的系统不仅要求高效的数据获取能力&#xff0c;还需要有稳定的数据处理、存储和错误处理机制。 1. 需求分析 在开始构建之前&#xff0c;明确你的需求至关重要。你需要确定要抓取的API、数据的频率、数据的…

Jenkins工作流程原理

持续集成&#xff1a;自动部署打包发布代码 Jenkins工作流程 项目已经基于Jenkins实现了持续集成&#xff0c;每当我们push代码时&#xff0c;就会触发项目完成自动编译和打包。而需要运行某个微服务时&#xff0c;我们只需要经过两步&#xff1a; 第一步&#xff0c;访问je…

CS1061 “HtmlHelper”未包含“Partial”的定义,并且找不到可接受第一个“HtmlHelper”类型参数的可访问扩展方法“Partial”

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS1061 “HtmlHelper”未包含“Partial”的定义&#xff0c;并且找不到可接受第一个“HtmlHelper”类型参数的可访问扩展方法“Partial”(是否缺少 using 指令或程序集引用?) 14_Views_Message_E…

【刷题篇】分治-快速排序

文章目录 1、颜色分类2、 排序数组3、数组中的第K个最大元素4、库存管理 III 1、颜色分类 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整…

前端开发环境:Vue、Element Plus、Axios

目录 1. Vue简介 2. Element Plus简介 3. Axios简介 4. 创建Vue项目 4.1 Node.js安装 4.2 创建Vue项目 4.3 Vue项目的结构 4.4 安装Element-Plus 4.5 安装Axios 4.6 解决跨域问题 5. 应用实例 5.1 创建Vue组件 5.2 配置路由 5.3 配置根组件 5.4 启动前端应用服…

Linux C语言:数组的定义和初始化

一、数组 1、定义 在程序设计中&#xff0c;为了处理方便&#xff0c;把具有相同类型的若干变量按有序的形式组织起来&#xff0c;具有一定顺序关系的若干个变量的集合就是数组 。 2、特点 组成数组的各个变量称为数组的元素数组中各元素的数据类型要求相同元素在内存中是连…

基于R语言BIOMOD2 及机器学习方法的物种分布模拟与案例分析

原文链接&#xff1a;基于R语言BIOMOD2 及机器学习方法的物种分布模拟与案例分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247606139&idx4&snf94ec30bfb5fa7ac0320403d49db3b66&chksmfa821e9ccdf5978a44a9ba96f6e04a121c0bbf63beea0940b385011c0b…

【协同感知】Collaborative Perception in Autonomous Driving数据集与论文整理

Collaborative Perception in Autonomous Driving 目前最全的Collaborative Perception整理数据集协同感知论文-【三维目标检测】现实世界下的协同感知理想条件下的协同感知 目前最全的Collaborative Perception整理 https://github.com/Little-Podi/Collaborative_Perception…

Java递归删除文件夹

Java可以直接删除文件或者空文件夹&#xff0c;但是当文件夹不为空时&#xff0c;就不能直接删除了&#xff0c;这时候可以使用递归将文件夹直接删除 首先我们假设在D盘创建a文件夹&#xff0c;a中有一个b文件夹&#xff0c;b中有一个c文件夹&#xff0c;c中有三个文本文件&…

freertos中的链表1 - 链表的数据结构

1.概述 freertos中链表的实现在 list.c 和 list.h。旨在通过学习freertos中的链表的数据结构&#xff0c;对freertos中的链表实现有一个整体的认识。freertos使用了三个数据结构来描述链表&#xff0c;分别是&#xff1a;List_t&#xff0c; MiniListItem_t&#xff0c;ListIt…