点击下方名片,设为星标

回复“1024”获取2TB学习资源!

前面介绍了OpenStack Keystone 、GlanceNova 、Neutron Horizon 、Cinder 、Swift 等相关的知识点,今天我将详细的为大家介绍Openstack 基础组件服务基本使用相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发分享朋友圈支持一波!!!

Glance服务的基本使用

创建镜像

CirrOS是一个极小的云操作系统,可以使用这个小的操作系统来进行Glance服务组件的操作练习。将提供的cirros-0.3.4-x86_64-disk.img镜像上传到controller节点的root目录下面。

将镜像上传至controller节点后,通过file命令查看镜像文件信息。

[root@controller ~]# file cirros-0.3.4-x86_64-disk.img 
cirros-0.3.4-x86_64-disk.img: QEMU QCOW Image (v2), 41126400 bytes
查看创建镜像的命令格式

ceef029b9373e949d69c6bd242d41e54.png参数说明

–disk-format  #镜像格式  
–container-format  #镜像在其他项目中的可见性 
–progress  #显示上传镜像的进度  
–file  #选择本地镜像文件 
–name  #上传后镜像的名称

使用镜像cirros-0.3.4-x86_64-disk.img通过命令上传镜像至OpenStack中。

[root@controller ~]# glance image-create --name cirrosA --disk-format qcow2 --container-format bare --progress --file cirros-0.3.4-x86_64-disk.img
da537db4398dd8a71ee1ae2da12d94db.png
管理镜像

通过命令可以在OpenStack平台中查看当前Glance中所上传的镜像名称。5f2e48d80800946fc54686672a29942a.png查看镜像的详细信息e52814f6983f45f6e7ea7589f2023946.png

修改镜像

可以使用 glance image-update 更新镜像信息。

命令格式如下9b66ca9f96728885089f66b414aaf0d2.png参数说明

–min-disk  #镜像启动最小硬盘大小
–name  #镜像名称
–disk-format  #镜像格式
–min-ram  #镜像启动最小内存大小
–container-format  #镜像在项目中可见性

如果需要改变镜像启动硬盘最低要求值(min-disk)1G,(min-ram)1024M,min-disk默认单位为G,min-ram默认单位为M。

使用glance image-update 更新镜像信息。7bb6aa8b4b7771b95593a7f22dbe2a8f.png

删除镜像

使用glance image-delete 删除上传至openstack平台中的镜像。

命令格式如下33b9d8094e408c973f6d8355b031f17a.png只需要在命令后跟上镜像ID即可91c4fbef70e9305313f1c42a25e9b5ea.png更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

Nova服务的基本使用

创建flavor类型

flavor类型为Openstack在创建云主机时需要提供的云主机大小类型,云主机的资源大小可使用不同的flavor来定义。

命令格式如下1a95b2e68de35c35790637a8eb4b0596.png使用命令创建一个flavor,10G的硬盘大小,512内存,1颗vCPU,ID为10,名称为flavor1。5abb4b286f99d36ea77f455fdaeaccbe.png

查看flavor类型

使用 openstack flavor list 命令查看flavor类型列表。7a2491f77d998760337d6f6e699813b9.png使用 openstack flavor show 命令查看flavor类型的详细信息。

命令格式如下1cfeeb53f00a7fe4f07bda29f7261b06.png查看刚刚创建的flavor1的详细信息8d6130c34e0c0dc7a00f2166450dc923.png

访问安全组

访问安全组为是OpenStack提供给云主机的一个访问策略控制组,通过安全组中的策略可以控制云主机的出入访问规则。

查看访问安全组

使用命令 openstack security group list 可以查看当前所创建的访问安全组列表。c9b730c89fbb830a9c7a1ef0b1b6cf1c.pngdefault 为Openstack平台自带的安全组,通过命令可以查看安全组中的安全规则。37a3cc9e3befa9359ef401f7b33ca04c.png在安全组规则列表中,不能看出每条规则的具体策略,通过使用命令 openstack security group rule show 查看任意规则的详细信息。3e7df1a38c14e2be9a6788fe9f030007.png

创建访问安全组

创建一个新的安全组,命令格式如下。fafb3486428275c4e68616a366d50f99.png使用命令创建新的安全组规则,命令如下:ecad5815aff237f9d0c9cce1a403b4af.png

删除访问安全组

可以使用命令删除不使用的访问安全组b0f0b78434ecebf7e340fb124ce2fb81.png

添加安全组规则

在默认安全组中添加三条需要使用的访问规则,使用 openstack security group rule create 命令,命令格式如下:8ca63a708aa6f8227b8d8ead89ae2d31.png在“defualt”安全组中添加一条策略,从入口方向放行所有ICMP规则。f81649397e9fddf05f467b978be30d85.png查看“default”安全组中所有的规则列表信息。cb55e3e733f3256eccb536645c509a05.png

启动虚拟机
查询可用镜像

上传镜像,使用 openstack image list 命令来查询当前可用镜像列表。

[root@controller ~]# glance image-create --name cirrosB --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img

1ed211e3ae8f6c0409f297eb9e996c47.png使用 openstack flavor list 命令查看可用的类型。1147478f26235aff8d4ee440fe763851.png

创建网络和子网

使用 openstack network create 命令创建网络信息。

–provider-physical-network #将提供者网络“provider”绑定在物理网卡上
–provider-network-type  #提供者网络“provider”的网络类型
[root@controller ~]# openstack network create --provider-network-type vlan --provider-physical-network provider --provider-segment 200 network-vlan

220ffe315d2e112ceed170877d58eb6d.png使用 openstack subnet create 创建子网

[root@controller ~]# openstack subnet create --network network-vlan --allocation-pool start=192.168.200.100,end=192.168.200.200 --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 subnet-vlan
91d86931ce6e6619a361d08977b8555d.png
管理虚拟机
查看虚拟机

使用 openstack server list 命令查看虚拟机列表信息。

[root@controller ~]# openstack server list
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| ID                                   | Name        | Status | Networks                     | Image   | Flavor  |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| 5cfcde24-b785-45ac-9f07-9390d827a6cc | cirros-test | ACTIVE | network-vlan=192.168.200.164 | cirrosB | flavor1 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+

使用命令可以查看虚拟机的具体信息,包括使用的安全组、flavor以及网络信息,通过命令“openstack server show”进行查看。4f2124f92951e3cb441a584608f9808d.png

操作虚拟机

可以通过命令操作虚拟机,对虚拟机进行关机、开机、重启等操作。关闭虚拟机操作。

[root@controller ~]# openstack server stop cirros-test
[root@controller ~]# openstack server start cirros-test
[root@controller ~]# openstack server reboot cirros-test

7e8677bcbabfecda9ca79525222b0ac4.png2454aa231f7bfe4a355d6cc4aac6e4f5.png更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

Cinder服务基本使用

块存储服务
创建镜像和网络
[root@controller ~]# source /etc/keystone/admin-openrc.sh 
[root@controller ~]# glance image-create --name cirros11 --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img
c37277dd79b7db5931325e698752f0ea.png
[root@controller ~]# openstack network create --provider-network-type vlan --provider-physical-network provider --provider-segment 230 net-vlan1
3b99a61c00b24288ed76d495639549fa.png
[root@controller ~]# openstack subnet create --network net-vlan1 --allocation-pool start=192.168.200.20,end=192.168.200.30  --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 subnet-vlan1
0ce5e78ae5711fe4a59bbebd8076203a.png
修改OpenStack平台

修改Nova服务配置文件,设置参数 virt_type=qemu。86b50bff3cb94da8076794a83858db0c.png

创建云主机
[root@controller ~]# openstack server create --image cirros11 --flavor 2 --network net-vlan1 cirros-test2
d5ee4ea9dc01bb02e1bf943018ea36f7.png
查看Cinder服务状态

使用 openstack volume service list 查询块存储服务状态。5638b580383908448499d34c724e77a2.png

创建块存储

使用 openstack volume create 创建块存储。命令格式如下:6d7d4541fadd410c5f235b3c556bef6c.png通过命令创建块存储,大小为2G,名称为 volume。e2373c867f160d76db7cb9ff3e5d6773.png

查看块存储

使用 openstack volume list 命令查看块存储列表信息。96141805c7ee04203c6dd964ec26347c.png通过openstack volume show 命令查看某一块存储的详细信息。bdca923307d7d4ab6f4902504d6b8d42.png

挂载云硬盘

块存储设备创建成功后,可以在openstack 上将该设备挂载至云主机上,可以作为一块云硬盘来使用。给云主机添加一块磁盘。

将块存储挂载至云主机的命令为 openstack server add volume。命令格斯如下:4a0ad4031ac04db8f044a4bfa7ab2dda.png使用命令将刚刚创建的 volume 块存储添加至云主机 cirros-test2 上。

[root@controller ~]# openstack server add volume cirros-test2 volume

使用命令查看块存储列表信息3b21d0ea6be21b354ed740312e897127.png

扩展卷
扩展卷大小

创建完卷后可能因为需求变更,需要对已有的卷进行扩容操作,这时需要用到 openstack volume set 抿了修改卷的信息。命令格式如下:1471c235c581753b8a95c97f09785c5d.png分离卷,通过命令将 volume 卷大小从2G扩容至3G,使用–size 参数可修改已创建好的卷大小。bdea3328ea18e5ee2046080e154c8be5.png

验证卷大小

将扩容后的卷 volume 挂载至云主机 cirros-test2 上。ede16bb139130583e95e5ca19d92dc66.png可以看到卷 volume 挂载至云主机 cirros-test2 上盘符的名称为 /dev/vdb 使用 virsh 工具登录云主机 输入命令 lsblk。查看云硬盘大小是否 3G3f41394ffde116a69bc6e83d0d6d4031.png可以看到显示盘符 vdb 大小为 3G 此时云硬盘已经扩展完成。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

Swift服务的基本使用

对象存储服务
查看服务状态

在openstack平台中使用 swift stat 查看对象存储服务的状态。

[root@controller ~]# swift stat
               Account: AUTH_2dd8f147022949548b9bdf2f2eb17790
            Containers: 0
               Objects: 0
                 Bytes: 0
       X-Put-Timestamp: 1675591940.80565
           X-Timestamp: 1675591940.80565
            X-Trans-Id: tx3587d8646d084f19b8d26-0063df8104
          Content-Type: text/plain; charset=utf-8
X-Openstack-Request-Id: tx3587d8646d084f19b8d26-0063df8104
创建容器

通过 openstack container create 命令创建容器,命令格式如下:

[root@controller ~]# openstack container create --help
usage: openstack container create [-h] [-f {csv,json,table,value,yaml}]
                                  [-c COLUMN] [--max-width <integer>]
                                  [--fit-width] [--print-empty] [--noindent]
                                  [--quote {all,minimal,none,nonnumeric}]
                                  [--sort-column SORT_COLUMN]
                                  <container-name> [<container-name> ...]

使用命令创建容器 名称为 swift-test

[root@controller ~]# openstack container create container1
+---------------------------------------+------------+------------------------------------+
| account                               | container  | x-trans-id                         |
+---------------------------------------+------------+------------------------------------+
| AUTH_2dd8f147022949548b9bdf2f2eb17790 | container1 | tx0b85327a7c22408383b82-0063df821a |
+---------------------------------------+------------+------------------------------------+
查看容器

使用命令查询容器列表信息

[root@controller ~]# openstack container list
+------------+
| Name       |
+------------+
| container1 |
+------------+

使用命令查询容器详细信息

[root@controller ~]# openstack container show container1
+--------------+---------------------------------------+
| Field        | Value                                 |
+--------------+---------------------------------------+
| account      | AUTH_2dd8f147022949548b9bdf2f2eb17790 |
| bytes_used   | 0                                     |
| container    | container1                            |
| object_count | 0                                     |
+--------------+---------------------------------------+
创建对象

创建完容器后,可以创建对象,通过使用命令 openstack object create 在对象中创建对象,命令格式如下。

[root@controller ~]# openstack object create --help
usage: openstack object create [-h] [-f {csv,json,table,value,yaml}]
                               [-c COLUMN] [--max-width <integer>]
                               [--fit-width] [--print-empty] [--noindent]
                               [--quote {all,minimal,none,nonnumeric}]
                               [--sort-column SORT_COLUMN] [--name <name>]
                               <container> <filename> [<filename> ...]

在使用命令创建对象前,需要将上传后的目录结构在本地创建,在本地创建名为 test 的目录/root/test,将/root/anaconda-ks.cfg 文件复制至 /root/test 目录中。

[root@controller ~]# mkdir test
[root@controller ~]# cp -rvf anaconda-ks.cfg test/
"anaconda-ks.cfg" -> "test/anaconda-ks.cfg"
[root@controller ~]# ls test/
anaconda-ks.cfg

创建对象的过程也是向容器中上传文件,使用命令创建 test/anaconda-ks.cfg 和 anaconda-ks.cfg 对象。

[root@controller ~]# openstack object create container1 test/anaconda-ks.cfg 
+----------------------+------------+----------------------------------+
| object               | container  | etag                             |
+----------------------+------------+----------------------------------+
| test/anaconda-ks.cfg | container1 | d36057f078895b4ce261e5a2abddf671 |
+----------------------+------------+----------------------------------+
查看对象

创建完对象后,通过命令查看容器中对象信息,使用命令“openstack object list” 查看对象信息,命令格式如下:

[root@controller ~]# openstack object list --help
usage: openstack object list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
                             [--max-width <integer>] [--fit-width]
                             [--print-empty] [--noindent]
                             [--quote {all,minimal,none,nonnumeric}]
                             [--sort-column SORT_COLUMN] [--prefix <prefix>]
                             [--delimiter <delimiter>] [--marker <marker>]
                             [--end-marker <end-marker>]
                             [--limit <num-objects>] [--long] [--all]
                             <container>

使用命令查看容器 container1 中所有对象信息。

[root@controller ~]# openstack object list container1
+----------------------+
| Name                 |
+----------------------+
| test/anaconda-ks.cfg |
+----------------------+

通过查询命令可以看出,在通过命令上传对象时,本地路径即为容器内对象路径。使用 openstack object show 查询 container1 容器中 test/anaconda-ks.cfg 对象的详细信息。

[root@controller ~]# openstack object show container1 test/anaconda-ks.cfg 
+----------------+---------------------------------------+
| Field          | Value                                 |
+----------------+---------------------------------------+
| account        | AUTH_8477005613924107b281ef0292377fff |
| container      | container1                            |
| content-length | 1537                                  |
| content-type   | application/octet-stream              |
| etag           | d36057f078895b4ce261e5a2abddf671      |
| last-modified  | Tue, 07 Feb 2023 08:18:53 GMT         |
| object         | test/anaconda-ks.cfg                  |
+----------------+---------------------------------------+
下载对象

存储在容器中的对象,可以在需要使用时,通过 openstack object save 命令进行下载至本地,命令格式如下:

[root@controller ~]# openstack object save --help
usage: openstack object save [-h] [--file <filename>] <container> <object>

Save object locally

使用命令 将 container1 容器中的 test/anaconda-ks.cfg 对象下载至本地/opt/目录下。

[root@controller opt]# openstack object save container1 test/anaconda-ks.cfg
[root@controller opt]# ls test/
anaconda-ks.cfg
删除对象

使用 openstack object delete 命令删除容器内的对象,命令格式如下:

[root@controller opt]# openstack object delete --help
usage: openstack object delete [-h] <container> <object> [<object> ...]

使用删除容器命令删除 container1 中的对象 test/anaconda-ks.cfg。

[root@controller opt]# openstack object delete container1 test/anaconda-ks.cfg 
[root@controller opt]# openstack object list container1
删除容器

使用 openstack container delete 命令删除容器,命令格式如下:

[root@controller test]# openstack container delete --help
usage: openstack container delete [-h] [--recursive]
                                  <container> [<container> ...]

使用删除命令删除容器 container1

[root@controller opt]# openstack container delete container1
[root@controller opt]# openstack container list
分片存储案例
创建容器

使用命令创建一个容器 test 并查看容器的状态信息。

[root@controller opt]# openstack container create container2
+---------------------------------------+------------+------------------------------------+
| account                               | container  | x-trans-id                         |
+---------------------------------------+------------+------------------------------------+
| AUTH_8477005613924107b281ef0292377fff | container2 | tx42b3d14b9e3d453b9efb0-0063e20dc4 |
+---------------------------------------+------------+------------------------------------+
[root@controller opt]# swift stat container2
               Account: AUTH_8477005613924107b281ef0292377fff
             Container: container2
               Objects: 0
                 Bytes: 0
              Read ACL:
             Write ACL:
               Sync To:
              Sync Key:
         Accept-Ranges: bytes
      X-Storage-Policy: Policy-0
         Last-Modified: Tue, 07 Feb 2023 08:37:26 GMT
           X-Timestamp: 1675759045.17190
            X-Trans-Id: txec129673c23344ed998f2-0063e20dcd
          Content-Type: application/json; charset=utf-8
X-Openstack-Request-Id: txec129673c23344ed998f2-0063e20dcd
上传镜像并分片存储

上传镜像,并使用命令上传至test容器中,进行分片存储,每个片段大小为10M。

[root@controller test]# swift upload container2 -S 10000000 cirros-0.3.4-x86_64-disk.img 
cirros-0.3.4-x86_64-disk.img segment 1
cirros-0.3.4-x86_64-disk.img segment 0
cirros-0.3.4-x86_64-disk.img

查看cirros镜像的存储路径

[root@controller test]# swift stat container2 cirros-0.3.4-x86_64-disk.img 
               Account: AUTH_8477005613924107b281ef0292377fff
             Container: container2
                Object: cirros-0.3.4-x86_64-disk.img
          Content Type: application/octet-stream
        Content Length: 13287936
         Last Modified: Tue, 07 Feb 2023 08:47:09 GMT
                  ETag: "cca17a689bfcd70118fabc833af0d033"
              Manifest: container2_segments/cirros-0.3.4-x86_64-disk.img/1675759156.181087/13287936/10000000/
            Meta Mtime: 1675759156.181087
         Accept-Ranges: bytes
           X-Timestamp: 1675759628.40876
            X-Trans-Id: tx5c5baf471ab3468cb2a57-0063e2109e
X-Openstack-Request-Id: tx5c5baf471ab3468cb2a57-0063e2109e

查看存储路径中的数据片

[root@controller test]# swift list container2_segments
cirros-0.3.4-x86_64-disk.img/1675759156.181087/13287936/10000000/00000000
cirros-0.3.4-x86_64-disk.img/1675759156.181087/13287936/10000000/00000001

可以看到,cirros镜像在上传至Swift对象存储中被分片存储了,单个存储篇的大小为 10M,因为镜像大小为16M左右,所以分成了两个存储片。

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

链接:https://blog.csdn.net/qq_52089863/article

/details/128922055

读者专属技术群

构建高质量的技术交流社群,欢迎从事后端开发、运维技术进群(备注岗位,已在技术交流群的请勿重复添加)。主要以技术交流、内推、行业探讨为主,请文明发言。广告人士勿入,切勿轻信私聊,防止被骗。

扫码加我好友,拉你进群

2d93305ea642389ff748615673b5e506.jpeg

推荐阅读 点击标题可跳转

新一代操作系统语言正崛起,打破C/C++垄断地位

弃用 Visio !事实证明,它更快、更牛逼!

扔掉 ELK !来试试这套轻量级k8s日志解决方案

原以为是Xshell的平替,没想到是个王者

淘宝、京东大调整!网友:被逼到绝路了

把电脑分辨率改成500%的犟种们,解决办法来了

Oracle 数据库很难么?带你从头到尾捋一遍!

528d38b99c5b96def6c103415743aad6.png

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下在看,加个星标,这样每次新文章推送才会第一时间出现在你的订阅列表里。点在看支持我们吧!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐