当前位置: 首页 > news >正文

OpenStack云平台管理

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 1500inet 172.24.4.1  netmask 255.255.255.0  broadcast 172.24.4.255inet6 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 0TX 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.0inet6 addr: fe80::f816:3eff:fe44:db9f/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1RX packets:125 errors:0 dropped:0 overruns:0 frame:0TX packets:183 errors:0 dropped:0 overruns:0 carrier:0collisions: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.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions: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.0inet6 addr: fe80::f816:3eff:feab:ee95/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1RX packets:95 errors:0 dropped:0 overruns:0 frame:0TX packets:142 errors:0 dropped:0 overruns:0 carrier:0collisions: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.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions: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-9F3F1E3BA5A1Device     Start     End Sectors  Size Type
/dev/vda1  18432 2097118 2078687 1015M Linux filesystem
/dev/vda15  2048   18431   16384    8M EFI SystemPartition 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, 294912Allocating 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-9F3F1E3BA5A1Device     Start     End Sectors  Size Type
/dev/vda1  18432 2097118 2078687 1015M Linux filesystem
/dev/vda15  2048   18431   16384    8M EFI SystemPartition 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: 0x1dc7a442Device     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.0inet6 addr: fe80::f816:3eff:feab:ee95/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1RX packets:381 errors:0 dropped:0 overruns:0 frame:0TX packets:383 errors:0 dropped:0 overruns:0 carrier:0collisions: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.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions: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.0inet6 addr: fe80::f816:3eff:feee:187e/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1RX packets:128 errors:0 dropped:0 overruns:0 frame:0TX packets:158 errors:0 dropped:0 overruns:0 carrier:0collisions: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.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions: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用户。

相关文章:

OpenStack云平台管理

OpenStack云平台管理 文章目录 OpenStack云平台管理资源列表基础环境一、部署Openstack二、创建网络和路由2.1、删除默认的网络2.2、创建网络和路由2.2.1、创建外部网络2.2.2、创建内部网络 2.3、创建路由 三、创建实例3.1、配置实例3.2、配置NAT转换 四、绑定浮动IP地址五、添…...

内部类(超详细)

内部类 一:初始内部类 (1)什么是内部类? 类的五大成员:属性、方法、构造方法、代码块、内部类 举例:在A类的内部定义B类,B类就被称为内部类 public class Outer {// 外部类public class Inter {// 内部类} } public class Test {// 外部其他类public static void m…...

Android的SELinux详解

标签: Android的SELinux详解; SELinux;Enforcing; Android的SELinux详解 概述 SELinux(Security-Enhanced Linux)是一个Linux内核模块和用户空间工具的集合,提供强制访问控制(MAC)机制。Android引入SELinux以增强系统的安全性,通过限制进程的权限来减少安全漏洞的…...

R语言中的列表list

基础 在R语言中的最常用的向量有两种&#xff1a; 第一种&#xff0c;原子向量 像字符型向量&#xff0c;数值型向量&#xff0c;逻辑型向量这些&#xff0c;它们共有的一个特点是&#xff0c;向量里面的值是同质的。当你用数值型向量时&#xff0c;里面所有值都是数值型的。…...

10、有条件提前退出关键字Return From Keyword If【robot framework】

在 Robot Framework 中&#xff0c;Return From Keyword If 是一个有用的关键字&#xff0c;它允许你在特定条件下从关键字中返回。这在需要在满足某个条件时提前退出关键字的情况下特别有用。 以下是 Return From Keyword If 的语法和使用示例&#xff1a; 语法 Return From…...

JAVA开发的一套(智造制造领航者云MES系统成品源码)saas云MES制造执行系统源码,全套源码,支持二次开发

JAVA开发的一套&#xff08;智造制造领航者云MES系统成品源码&#xff09;saas云MES制造执行系统源码&#xff0c;全套源码&#xff0c;支持二次开发 1990年11月&#xff0c;美国先进制造研究中心AMR&#xff08;Advanced Manufacturing Research&#xff09;就提出了MES&#…...

探究JSON和XML:两种常见的数据交换格式之异同

在软件开发和数据交换领域&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;和XML&#xff08;eXtensible Markup Language&#xff09;是两种广泛使用的数据交换格式。它们都具有将数据结构化并在不同系统之间进行传输和解析的能力&#xff0c;但在实际应用…...

SQL查询的优化方案

SQL查询优化是一个重要的数据库管理任务&#xff0c;它可以帮助提升查询性能&#xff0c;减少响应时间和系统资源消耗。以下是一些关键的优化策略及其示例&#xff1a; 1. 使用索引 (Indexing) 优化说明: 索引能够显著加快数据检索速度&#xff0c;特别是对于大表上的查询。为…...

【C语言题解】1、写一个宏来计算结构体中某成员相对于首地址的偏移量;2、写一个宏来交换一个整数二进制的奇偶位

&#x1f970;欢迎关注 轻松拿捏C语言系列&#xff0c;来和 小哇 一起进步&#xff01;✊ &#x1f308;感谢大家的阅读、点赞、收藏和关注 &#x1f495;希望大家喜欢我本次的讲解&#x1f495; 目录&#x1f451; 1、写一个宏&#xff0c;计算结构体中某变量相对于首地址的偏…...

LabVIEW阀性能试验台测控系统

本项目开发的阀性能试验台测控系统是为满足国家和企业相关标准而设计的&#xff0c;主要用于汽车气压制动系统控制装置和调节装置等产品的综合性能测试。系统采用工控机控制&#xff0c;配置电器控制柜&#xff0c;实现运动控制、开关量控制及传感器信号采集&#xff0c;具备数…...

Flutter 中的 LayoutBuilder 小部件:全面指南

Flutter 中的 LayoutBuilder 小部件&#xff1a;全面指南 Flutter 是一个功能丰富的 UI 框架&#xff0c;它允许开发者使用 Dart 语言来构建高性能、美观的跨平台应用。在 Flutter 的布局系统中&#xff0c;LayoutBuilder 是一个强大的组件&#xff0c;它可以根据父容器的约束…...

webman中创建udp服务

webman是workerman的web开发框架 可以很容易的开启udp服务 tcp建议使用gatewayworker webman GatewayWorker插件 创建udp服务: config/process.php中加入: return [// File update detection and automatic reloadmonitor > [ ...........], udp > [handler > p…...

Vue 学习笔记 总结

Vue.js 教程 | 菜鸟教程 (runoob.com) 放一下课上的内容 Vue练习 1、练习要求和实验2的用户注册一样&#xff0c;当用户输入后&#xff0c;能在下方显示用户输入的各项内容&#xff08;不需要实现【重置】按钮&#xff09; 2、实验报告中的实验小结部分来谈谈用JS、jQuery和…...

云计算导论(3)---分布式文件系统

文章目录 1. 概述2. 基本架构3. GFS和HDFS4. 云存储 1. 概述 1. 文件系统是操作系统用来组织磁盘文件的方法和数据结构。  传统的文件系统指各种UNIX平台的文件系统&#xff0c;包括UFS等&#xff0c;它们管理本地的磁盘存储资源&#xff0c;提供文件到存储位置的映射&#xf…...

后端进阶-分库分表

文章目录 为什么需要分库为什么需要分表 什么时候需要分库分表只需要分库只需要分表 分库分表解决方案垂直分库水平分库垂直分表水平分表 分库分表常用算法范围算法hash分片查表分片 分库分表模式客户端模式代理模式 今天跟着训练营学习了分库分表&#xff0c;整理了学习笔记。…...

Apple开发者应用商店(AppStore)描述文件及ADHOC描述文件生成

创建AD HOC描述文件 1.选中Profiles,然后点击加号创建 2.创建已注册设备可安装描述文件 3.选择要注册的id 4.选择证书 5.选择设备 6.输入文件名,点击生成 7.生成成功,点击下载...

【Git】修改设置 git 的 username、email

设置全局的本地用户名称和用户邮箱 参考&#xff1a;使用git config --global设置用户名和邮件 git config --global user.name "xxx" git config --global user.email "xxx.com"git config --list git config命令的–global参数&#xff0c;用了这个参数…...

python脚本打包为exe并在服务器上设置定时执行

python脚本打包为exe并在服务器上设置定时执行 1. Python脚本打包2. 将打包好的Python脚本放入服务器3. 在服务器上设置其定时执行 1. Python脚本打包 首先&#xff0c;下载pyinstaller 键盘winR打开终端&#xff0c;输入命令&#xff1a;pip install pyinstaller&#xff0c;…...

STM32-呼吸灯仿真

目录 前言: 一.呼吸灯 二.跑马灯 三. 总结 前言: 本篇的主要内容是关于STM32-呼吸灯的仿真,包括呼吸灯,跑马灯的实现与完整代码,欢迎大家的点赞,评论和关注. 接上http://t.csdnimg.cn/mvWR4 既然已经点亮了一盏灯,接下来就可以做更多实验了, 一.呼吸灯 在上一个的基础上…...

【AI基础】第三步:纯天然保姆喂饭级-安装并运行chatglm2-6b

chatglm2构建时使用了RUST&#xff0c;所以在安装chatglm2之前&#xff0c;先安装RUST。 此系列文章列表&#xff1a; 【AI基础】第一步&#xff1a;安装python开发环境-windows篇_下载安装ai环境python-CSDN博客 【AI基础】第一步&#xff1a;安装python开发环境-conda篇_mini…...

Spring Security系列之Handler

概述 与Spring、Spring MVC、Spring Boot一样&#xff0c;Spring Security里也有很多Handler接口、可以分为两大类&#xff0c;一类是普通的XxxHandler&#xff08;见名知意&#xff09;&#xff0c;另一类是对应的ServerXxxHandler&#xff08;RequestRejectedHandler除外&am…...

Thinkphp使用Elasticsearch查询

在Thinkphp中调用ES&#xff0c;如果自己手写json格式的query肯定是很麻烦的。我这里使用的是ONGR ElasticsearchDSL 构建 ES 查询。ongr ElasticsearchDSL 的开源项目地址&#xff1a;GitHub - ongr-io/ElasticsearchDSL: Query DSL library for Elasticsearch。ONGR Elastics…...

开源日志分析平台ELK实战应用

1.开源日志分析平台ELK概述及搭建过程 ELK 是一个开源的日志管理平台,由 Elasticsearch、Logstash 和 Kibana 三个组件组成。这个平台广泛用于实时日志处理和分析。下面简单介绍一下每个组件的作用以及如何搭建一个基本的 ELK 栈。 ELK 组件 Elasticsearch:是一个搜索和分析…...

css基本操作及使用

CSS 的基本简介 什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中&#xff0c;是为了解决内容与表现分别的问题 外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 …...

SpringBoot+Vue幼儿园管理系统(前后端分离)

技术栈 JavaSpringBootMavenMyBatisMySQLVueElement-UI 系统角色 教师用户管理员 功能截图...

MFC实现子控件focus焦点上下移动父控件ListView和Gridview也跟着向上下移动

项目中要实现mfc功能&#xff0c;然后子控件焦点下移&#xff0c;LIstView和Gridview父控件不会下移&#xff0c;所以就有这个文章。废话不多说直接上代码。 MFCGridView.java import android.content.Context; import android.util.AttributeSet; import android.view.View;…...

几何关系运算处理

1. 判断点在线的左边还是右边 要判断一个坐标点在直线的左侧还是右侧&#xff0c;可以使用向量叉积。具体来说&#xff0c;对于给定的直线和点&#xff0c;我们可以计算点到直线的向量与直线的方向向量的叉积。叉积的符号可以用于判断点的位置关系&#xff1a; 如果叉积为正&…...

http和https分别是什么?区别是什么?

HTTP和HTTPS是两种常见的网络协议&#xff0c;用于在Web上进行数据传输。以下是它们的简要解释和主要区别&#xff1a; HTTP&#xff08;Hypertext Transfer Protocol&#xff09; HTTP是一种应用层协议&#xff0c;用于在Web上传输数据。它是互联网上应用最为广泛的一种网络…...

第一周:计算机网络概述(上)

一、计算机网络基本概念 1、计算机网络通信技术计算机技术 计算机网络就是一种特殊的通信网络&#xff0c;其特殊之处就在于它的信源和信宿就是计算机。 2、什么是计算机网络 在计算机网络中&#xff0c;我们把这些计算机统称为“主机”&#xff08;上图中所有相连的电脑和服…...

谷歌AI搜索变革,中国引擎能跟上步伐?

全文预计1200字左右&#xff0c;预计阅读需要6分钟。 一年前&#xff0c;谷歌宣布人工智能将引领搜索的未来&#xff0c;如今&#xff0c;这一愿景正逐步实现。谷歌已在美国推出并即将全球推广"AI Overviews"&#xff0c;为用户提供由AI生成的搜索结果概览&#xff0…...

地球人--一家只做信誉的网站/搜索引擎关键词排名优化

【CTRLSHIFTF】...

山东日照今日疫情/搜索引擎优化排名技巧

1. 基本概念 光功率计&#xff08;OPM&#xff09;&#xff1a;是用于测量光信号中的功率的装置&#xff0c;它通常指用于测试光的平均功率(Average Power)dB&#xff1a;表示相对功率 P(dB) 10 log(P/Pref)dBm&#xff1a;表示绝对功率 P(dBm) 10 log (P/1mW) 0dBm&…...

java 快速建站/新闻最新热点

文章目录一、概述二、开发步骤三、相关的类与接口四、操作例子1. 对数据库进行增/删/改时2. 对数据库进行查询时五、事务管理六、JDBC封装七、创建连接池进行优化一、概述 JAVASE规范&#xff1a;指定Java命令开发时基本规则&#xff0c;比如如何创建一个类&#xff0c;如何实…...

佛山格尔做网站的公司/百度收录的网页数量

Linux系统中查看CPU和内存使用情况&#xff0c;是一个运维工程师常见的事情&#xff0c;下面分享一下。 目 录 1.top命令 2.ps命令 3.free命令 1.top命令 top命令是Linux下常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用状况&#xff0c;类似于Windo…...

廊坊模板网站建设/百度竞价推广出价技巧

本系统为牛旦教育IT课堂在微头条上发布的内容&#xff0c;为便于查阅&#xff0c;特辑录于此&#xff0c;都是常用SQL基本用法。前两篇连接&#xff1a;(一)&#xff1a;SQL点滴(查询篇)&#xff1a;数据库基础查询案例实战(二)&#xff1a;SQL点滴(排序篇)&#xff1a;数据常规…...

做商城网站价格/seo公司重庆

下载地址&#xff1a;网盘下载 《Excel VBA 程序开发自学宝典&#xff08;第3 版&#xff09;》是VBA 入门与提高的经典教材。全书分上下两篇&#xff0c;上篇包含入门知识&#xff0c;对VBA 的基础理论、语法规则、编写思路、代码优化思路等都提供了详尽的理论阐述和案例演示。…...