openstack基础服务使用案例

在开机第一次使用openstack命令时都得先source一下keystone的环境变量文件,命令如下:

[root@controller ~]# source /etc/keystone/admin-openrc.sh

一、glance镜像服务的基本使用

(1) 创建镜像

1.1 上传镜像

上传到任意目录,记得住就行了,这里推荐上传到root目录下

1.2 创建镜像

参数说明
--disk-format镜像格式
--container-format镜像在其他项目中可见性
--progress显示上传镜像的进度
--file选择本地镜像文件
--name上传后镜像的名称
[root@controller ~]# glance image-create --name cirros-0.3.4 --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img 

(2) 管理镜像

2.1 查看镜像

通过命令可以在openstack平台中查看当前glance中所上传的镜像名称,命令如下:

[root@controller ~]# glance image-list
+--------------------------------------+--------------+
| ID                                   | Name         |
+--------------------------------------+--------------+
| 5944a2aa-4c44-488a-8cdc-979935020094 | cirros-0.3.4 |
+--------------------------------------+--------------+

也可以使用命令查看镜像的详细信息,命令如下:

[root@controller ~]# glance image-show 5944a2aa-4c44-488a-8cdc-979935020094			# 镜像id

2.2 修改镜像

如果需要改变镜像启动硬盘最低要求值(min-disk) 1G,min-disk默认单位为G。可以使用glance image-update 更新镜像信息,操作如下:

参数参数说明
 --min-disk镜像启动最小硬盘大小
--name    镜像名称
 --disk-format 镜像格式
 --min-ram镜像启动最小内存大小 
 --container-format镜像在项目中可见性
[root@controller ~]# glance image-update --min-disk=1 5944a2aa-4c44-488a-8cdc-979935020094

也可以使用命令刚更新镜像启动内存最低要求值(min-ram)为1G,min-ram默认单位为M。使用glance image-update更新镜像信息操作如下:

[root@controller ~]# glance image-update --min-ram=1024 5944a2aa-4c44-488a-8cdc-979935020094

2.3 删除镜像

可以使用glance image-delete 删除上传至openstack平台上的镜像,命令如下:

[root@controller ~]# glance image-delete 5944a2aa-4c44-488a-8cdc-979935020094

二、nova服务的基础使用

(1) 创建flavor类型

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

1.1 创建flavor类型

使用命令创建一个flavor,10G的硬盘大小,512M内存,1颗vcpu,id为10,名称为centos。命令如下:

[root@controller ~]# source /etc/keystone/admin-openrc.sh 
[root@controller ~]# openstack flavor create --disk 10 --ram 512 --vcpus 1 --id 10 centos

2.2 查看flavor类型

使用openstack flavor list命令查看flavor类型列表,命令如下:

[root@controller ~]# openstack flavor list
+----+-----------+------+------+-----------+-------+-----------+
| ID | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+------+------+-----------+-------+-----------+
| 1  | m1.tiny   |  512 |   10 |         0 |     1 | True      |
| 10 | centos    |  512 |   10 |         0 |     1 | True      |
| 2  | m1.small  | 1024 |   20 |         0 |     1 | True      |
| 3  | m1.medium | 2048 |   40 |         0 |     2 | True      |
+----+-----------+------+------+-----------+-------+-----------+
[root@controller ~]# 

也可以使用 openstack flavor show 命令查看具体的flavor类型的详细信息。命令如下:

[root@controller ~]# openstack flavor show centos
+----------------------------+--------+
| Field                      | Value  |
+----------------------------+--------+
| OS-FLV-DISABLED:disabled   | False  |
| OS-FLV-EXT-DATA:ephemeral  | 0      |
| access_project_ids         | None   |
| disk                       | 10     |
| id                         | 10     |
| name                       | centos |
| os-flavor-access:is_public | True   |
| properties                 |        |
| ram                        | 512    |
| rxtx_factor                | 1.0    |
| swap                       |        |
| vcpus                      | 1      |
+----------------------------+--------+

(2) 安全组

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

2.1 查看访问安全组

使用命令 openstack security group list 可以查看当前所创建的访问安全组列表。命令如下:

[root@controller ~]# openstack security group list
+--------------------------------------+---------+------------------------+------------
----------------------+------+
| ID                                   | Name    | Description            | Project    
                      | Tags |
+--------------------------------------+---------+------------------------+------------
----------------------+------+
| 6d775afe-d2d0-4039-9008-a48e25ebfde8 | default | Default security group | 0b6f2d0be1d
342e09edc31dc841db7a5 | []   |
+--------------------------------------+---------+------------------------+------------
----------------------+------+

defaultopenstack 平台自带的安全组,通过命令可以查看安全组中的安全规则,命令如下:

[root@controller ~]# openstack security group rule list default
+--------------------------------------+-------------+-----------+-----------+---------
---+--------------------------------------+
| ID                                   | IP Protocol | Ethertype | IP Range  | Port Ran
ge | Remote Security Group                |
+--------------------------------------+-------------+-----------+-----------+---------
---+--------------------------------------+
| 0b34c087-045e-4376-b4ee-4316cd11fdda | None        | IPv6      | ::/0      |         
   | None                                 |
| 3ac8d855-b1dd-4a6e-aeb4-56504d304954 | None        | IPv6      | ::/0      |         
   | 6d775afe-d2d0-4039-9008-a48e25ebfde8 |
| 405f2785-0fb7-4c00-a7a0-200281badbc1 | None        | IPv4      | 0.0.0.0/0 |         
   | 6d775afe-d2d0-4039-9008-a48e25ebfde8 |
| 9c4d7f25-6763-42ef-8858-003b5430b6d9 | None        | IPv4      | 0.0.0.0/0 |         
   | None                                 |
+--------------------------------------+-------------+-----------+-----------+---------
---+--------------------------------------+

在安全规则的列表中,不能看出每条规则的具体策略,通过使用命令 openstack security group rule show 查看任意规则的详细信息。命令如下:

[root@controller ~]# openstack security group rule show 9c4d7f25-6763-42ef-8858-003b5430b6d9   # 规则id

2.2 创建访问安全组

创建一个新的安全组,命令如下:

[root@controller ~]# openstack security group create test
[root@controller ~]# openstack security group create test

2.3 删除访问安全组

可以使用命令删除不需要使用的访问安全组,命令如下:

[root@controller ~]# openstack security group delete test

2.4 添加安全规则

在默认的安全组中添加三条需要使用的访问规则,使用 openstack security group rule create 命令,命令格式如下:

[root@controller ~]# openstack help security group rule create
usage: openstack security group rule create [-h]
                                            [-f {json,shell,table,value,yaml}]
                                            [-c COLUMN]
                                            [--max-width <integer>]
                                            [--fit-width] [--print-empty]
                                            [--noindent] [--prefix PREFIX]
                                            [--remote-ip <ip-address> | --remote-group 
<group>]
                                            [--description <description>]
                                            [--dst-port <port-range>]
                                            [--icmp-type <icmp-type>]
                                            [--icmp-code <icmp-code>]
                                            [--protocol <protocol>]
                                            [--ingress | --egress]
                                            [--ethertype <ethertype>]
                                            [--project <project>]
                                            [--project-domain <project-domain>]
                                            <group>

default 安全组中添加一条策略,从入口方向放行所有 icmp 规则,命令如下:

[root@controller ~]# openstack security group rule create --protocol icmp --ingress default

defult 安全组中添加一条策略,从入口方向放行所有TCP规则,命令如下:

[root@controller ~]# openstack security group rule create --protocol tcp --ingress default

在 defult 安全组中添加一条策略,从入口方向放行所有 UDP 规则,命令如下:

[root@controller ~]# openstack security group rule create --protocol udp --ingress default

查看 default 安全组中所有的规则表信息,命令如下:

[root@controoer ~]# openstack security group rule list default

(3) 启动虚拟机

3.1 查询可用镜像

上传镜像,使用 openstack image list 命令查看当前可用的镜像列表。命令如下:

[root@controller ~]# glance image-create --name cirros --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img
[root@controller ~]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| bb743f67-3467-4ee0-8e2a-1c3817107ecc | cirros | active |
+--------------------------------------+--------+--------+
[root@controller ~]# 

使用 openstack flavor list 命令查看可用的类型。命令如下:

[root@controller ~]# openstack flavor list
+----+-----------+------+------+-----------+-------+-----------+
| ID | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+------+------+-----------+-------+-----------+
| 1  | m1.tiny   |  512 |   10 |         0 |     1 | True      |
| 2  | m1.small  | 1024 |   20 |         0 |     1 | True      |
| 3  | m1.medium | 2048 |   40 |         0 |     2 | True      |
+----+-----------+------+------+-----------+-------+-----------+

3.2 创建网路和子网

使用 openstack network create 命令创建网络,命令如下:

[root@controller ~]# openstack network create --provider-network-type vlan --provider-physical-network provider network-vlan --provider-segment 200

使用 openstack subnet create 命令创建子网,命令如下:.

[root@controller ~]# openstack subnet list
[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

3.3 创建云主机

使用 openstack saerver create 命令创建云主机,flavor为1核vpu、512内存、10G硬盘,使用network-vlan网络,云主机名为cirros-test,创建命令如下:

[root@controller ~]# openstack server create --image cirros --flavor test --network network-vlan cirros-test

(4) 管理虚拟机

4.1 查看虚拟机

使用 openstack server list 命令查看虚拟机列表信息,使用命令如下:

[root@controller ~]# openstack server list

使用命令可以查看虚拟机的具体信息,包括使用的安全组、flavor以及网络信息,通过命令 openstack server show 进行查看。命令如下:

[root@controller]# openstack server show cirros-test

 4.2 操作虚拟机

可以通过命令擦送做虚拟机面对虚拟机进行关机、开机、重启等操作,关闭虚拟机操作,命令如下:

[root@controller ~]# openstack server stop cirros-test				# 关机
[root@controller ~]# openstack server start cirros-test				# 开机
[root@controller ~]# openstack servewr reboot cirros-test			# 重启

(5) 云主机调整大小

5.1 修改配置文件

修改controller节点的nova.conf配置文件,添加调整类型大小的参数,controller节点设置参数如下:

[root@controller ~]# crudini --set /etc/nova/nova.conf DEFAULT all_resize_to_same_host True
[root@controller ~]# systemctl restart openstack-nova*

5.2 创建云主机类型

现有云主机硬盘和内存不满足使用,需要对现有云主机进行资源扩容,将内容扩容至1G,硬盘扩容至15G大小,类型名称为"centos1" 首先创建一个新的云主机类型满足扩容的需求。通过命令创建新云主机类型,命令如下:

[root@controller ~]# openstack flavor create --disk 15 --ram 1024 --vcpus 2 centos1

查看当前云主机类型:

[root@controller ~]# openstack flavor list

5.3 调整云主机类型

查看云主机列表,通过命令查看云主机列表

[root@controller ~]# openstack server list

使用命令调整云主机 cirros-test 类型为 centos1,使用 --wait 参数,在命令执行后,调整云主机需要一定时间,添加 wait 参数后会在确认时反馈 complete。命令如下:

[root@controller ~]# openstack server resize --flavor centos1 --wait cirros-test

三、cinder服务的基本使用

(1) 块存储服务

1.1 创建镜像和网络

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

[root@controller ~]# openstack network create --provider-network-type vlan --provider-p
hysical-network provider network-vlan --provider-segment 200
[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

1.2 修改openstack平台

修改nova服务配置文件,设置参数virt_type=qemu。命令参数如下:

[root@controller ~]# crudini --set /etc/nova/nova.conf libvirt virt_type qemu
[root@controller ~]# systemctl restart openstack-nova-compute

1.3 创建云主机

[root@controller ~]# openstack server create --image cirros --flavor 2 --network network-vlan cirros-test

1.4 查看cinder服务状态

使用 openstack volume service list 命令查看块存储服务状态,命令如下:.

[root@controller ~]# openstack volume service list

1.5 创建块存储

通过使用命令 openstack volume create 创建块存储,大小为2G,名称为volume,命令如下:

[root@controller ~]# openstack volume create --size 2 volume

1.6 查看块存储

使用 openstack volume list 命令查看块存储列表信息。命令如下

[root@controller ~]# openstack volume list

通过openstack命令查看某一块存储的详细信息,命令如下:

[root@controller ~]# openstack volume show volume

1.7 挂载云硬盘

块存储设备创建成功后,可以在openstack上将该设备挂载至云主机上,可以作为一块云硬盘来进行使用。给云主机添加一块磁盘,使用命令将创建的volume块存储添加至云主机cirros-test上,命令如下:

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

使用命令查看块存储信息,命令如下:

[root@controller ~]# openstack volume list

(2) 扩展卷

2.1 扩展卷大小

创建完卷后可能因为需求的变更,需要对已有的卷进行扩容操作,这时用到openstack volume set命令修改卷的信息。分离卷,使用-size参数颗修改已创建好的卷大小,命令如下:

[root@controller ~]# openstack server remove volume cirros-test volume		# 分离卷
[root@controller ~]# openstack volume set --size 3 volume
[root@controller ~]# openstack volume list
+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| af4fe379-8f86-417a-a108-a7890ddaff14 | volume | available |    3 |             |
+--------------------------------------+--------+-----------+------+-------------+
[root@controller ~]# 

2.2 验证卷大小

将扩容后的卷volume 挂载至云主机cirros-test上,操作命令如下:

[root@controller ~]# openstack server add volume cirros-test volume
[root@controller ~]# openstack volume list
+--------------------------------------+--------+--------+------+----------------------
----------------+
| ID                                   | Name   | Status | Size | Attached to          
                |
+--------------------------------------+--------+--------+------+----------------------
----------------+
| af4fe379-8f86-417a-a108-a7890ddaff14 | volume | in-use |    3 | Attached to cirros-te
st on /dev/vdb  |
+--------------------------------------+--------+--------+------+----------------------
----------------+
[root@controller ~]# 

可以看到卷volume 挂载至云主机cirros-test盘符上的名称为/dev/vdb,使用virsh工具登录云主机,输入命令lsblk查看云硬盘大小是否为3G。命令如下:

[root@controller ~]# virsh console instance-00000001
Connected to domain instance-00000001
Escape character is ^]

login as 'cirros' user. default password: 'cubswin:)'. use 'sudo' for root.
cirros-test login: cirros
Password: cubswin:)
$ lsblk 
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  20G  0 disk 
`-vda1 253:1    0  20G  0 part /
vdb    253:16   0   3G  0 disk 
$ 

可以看到显示盘符vdb大小为3G,此时云硬盘已经扩展完成。

四、swift服务的基本使用

(1) 对象存储服务

1.1 查看服务状态

在openstack平台上使用swift stat查看对象存储服务状态:

[root@controller ~]# source /etc/keystone/admin-openrc.sh 
[root@controller ~]# swift stat
               Account: AUTH_0b6f2d0be1d342e09edc31dc841db7a5
            Containers: 0
               Objects: 0
                 Bytes: 0
       X-Put-Timestamp: 1703254328.69932
           X-Timestamp: 1703254328.69932
            X-Trans-Id: tx64e302d09b684a36a00a9-0065859937
          Content-Type: text/plain; charset=utf-8
X-Openstack-Request-Id: tx64e302d09b684a36a00a9-0065859937
[root@controller ~]#

1.2 创建容器

通过openstack container create 命令创建容器:

[root@controller ~]# openstack container create swift-test

1.3 查看容器

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

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

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

[root@controller ~]# openstack container show swift-test
+--------------+---------------------------------------+
| Field        | Value                                 |
+--------------+---------------------------------------+
| account      | AUTH_0b6f2d0be1d342e09edc31dc841db7a5 |
| bytes_used   | 0                                     |
| container    | swift-test                            |
| object_count | 0                                     |
+--------------+---------------------------------------+
[root@controller ~]#

1.4 创建对象

创建完容器后,可以创建对象,通过命令openstack object create在对象中创建对象。在使用命令创建对象前,需要将上传后的目录结构在本地创建。在本地创建名为test的目录/root/test,将/root/anaconda-ks.cfg文件复制至/root/test目录中,命令如下:

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

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

[root@controller ~]# openstack object create swift-test test/anaconda-ks.cfg 
+----------------------+------------+----------------------------------+
| object               | container  | etag                             |
+----------------------+------------+----------------------------------+
| test/anaconda-ks.cfg | swift-test | 41656296ae6768ae924a5b5f3fe15bf0 |
+----------------------+------------+----------------------------------+

1.5 查看对象

创建完对象后,通过命令查看容器中对象信息,使用命令openstack object list 查看容器swift-test中所有的对象信息,命令如下:

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

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

[root@controller ~]# openstack object show swift-test test/anaconda-ks.cfg 
+----------------+---------------------------------------+
| Field          | Value                                 |
+----------------+---------------------------------------+
| account        | AUTH_0b6f2d0be1d342e09edc31dc841db7a5 |
| container      | swift-test                            |
| content-length | 6880                                  |
| content-type   | application/octet-stream              |
| etag           | 41656296ae6768ae924a5b5f3fe15bf0      |
| last-modified  | Fri, 22 Dec 2023 14:21:15 GMT         |
| object         | test/anaconda-ks.cfg                  |
+----------------+---------------------------------------+
[root@controller ~]# 

1.6 下载对象

存储在容器中的对象,可以在需要使用时,通过openstack object save命令保存到本地,将test/anaconda-ks.cfg对象下载至本地/opt/目录下。

[root@controller opt]# openstack object save swift-test test/anaconda-ks.cfg
[root@controller opt]# ls test/
anaconda-ks.cfg
[root@controller opt]#

1.7 删除对象

使用openstack object delete删除 swift-test容器内 test/anaconda-ks.cfg对象,查看swift-test容器中对象列表信息,操作命令如下:

[root@controller opt]# openstack object delete swift-test test/anaconda-ks.cfg 
[root@controller opt]# openstack object list swift-test
​
[root@controller opt]# 

1.8 删除容器

使用openstack container delete命令将swift-test容器删除:

[root@controller opt]# openstack container delete swift-test
[root@controller opt]# openstack container list

(2) 分片存储案例

2.1 创建容器

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

[root@controller opt]# swift post test
[root@controller opt]# swift stat test
               Account: AUTH_0b6f2d0be1d342e09edc31dc841db7a5
             Container: test
               Objects: 0
                 Bytes: 0
              Read ACL:
             Write ACL:
               Sync To:
              Sync Key:
         Accept-Ranges: bytes
      X-Storage-Policy: Policy-0
         Last-Modified: Fri, 22 Dec 2023 14:34:04 GMT
           X-Timestamp: 1703255643.79517
            X-Trans-Id: tx4c175b7a686f49be98b3a-0065859e64
          Content-Type: application/json; charset=utf-8
X-Openstack-Request-Id: tx4c175b7a686f49be98b3a-0065859e64
[root@controller opt]# 

2.2 上传镜像并分片存储

将提供的cirros镜像上传至controller节点的/root目录下,并使用命令上传至test容器中,进行分配存储,每个片段大小为10M,命令如下:

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

查看cirros镜像的存储路径:

[root@controller ~]# swift stat test cirros-0.3.4-x86_64-disk.img 
               Account: AUTH_0b6f2d0be1d342e09edc31dc841db7a5
             Container: test
                Object: cirros-0.3.4-x86_64-disk.img
          Content Type: application/octet-stream
        Content Length: 13287936
         Last Modified: Fri, 22 Dec 2023 14:38:25 GMT
                  ETag: "cca17a689bfcd70118fabc833af0d033"
              Manifest: test_segments/cirros-0.3.4-x86_64-disk.img/1703255836.788893/13
287936/10000000/
            Meta Mtime: 1703255836.788893
         Accept-Ranges: bytes
           X-Timestamp: 1703255904.75342
            X-Trans-Id: txc0706396ae434c6daa41a-0065859f9e
X-Openstack-Request-Id: txc0706396ae434c6daa41a-0065859f9e
[root@controller ~]# 

查看存储路径中的数据片:

[root@controller ~]# swift list test_segments
cirros-0.3.4-x86_64-disk.img/1703255836.788893/13287936/10000000/00000000
cirros-0.3.4-x86_64-disk.img/1703255836.788893/13287936/10000000/00000001
[root@controller ~]#

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

 

  • 34
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习要求: 熟悉基本的linux命令 具备基本的网络知识 掌握一门编程语言 课程特点: 深刻理解:OpenStack的设计原理,体系构架和关键技术,构建一个OpenStack环境所需的核心组件以及核心组件间的联系; 全面掌握:如何通过不同的部署工具比如packstack,部署OpenStack环境;如何通过单独部署OpenStack核心组件逐渐搭建出OpenStack环境; 定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容------------------------ 课时1、课前学习环境准备 课时2、课程介绍 课时3、OpenStack概论 课时4、实例:OpenStack自动安装(Fuel) 课时5、作业:OpenStack Fuel 课时6、OpenStack安装部署答问 课时7、Keystone 详解 课时8、实例:OpenStack 手动安装 - 环境准 课时9、实例:Keystone 手动安装 课时10、实例:Keystone CLI 使用 课时11、实例:Keystone API使用 课时12、Glance详解 课时13、实例:Glance手动安装以及CLI、API 课时14、实例:Glance镜像制作 课时15、实例:Glance镜像修改 课时16、作业:Keystone手动练习 课时17、Keystone答问 课时18、作业:Glance手动练习 课时19、Nova架构及原理详解 课时20、实例:Nova手动安装 课时21、实例:Instance启动过程回顾 课时22、网络基础知识盘点 课时23、Neutron原理详解 课时24、实例:Neutron手动安装 课时25、实例:网络命名空间 课时26、实例:物理机连接openvswitch的虚 课时27、实例:租户私有网络创建 课时28、Neutron SDN 实现详解 课时29、实例:Neutron SDN 手动实现 课时30、作业:Nova、Neuron手动安装练习 课时31、作业:Neutron 相关实例练习 课时32、Neutron 答问 课时33、Cinder 原理详解 课时34、Cinder iSCSI实现原理详解 课时35、实例:Cinder 手动安装 课时36、Swift 架构与原理详解 课时37、实例:Swift 手动安装 课时38、Dashboard 介绍与演示 课时39、实例:Dashboard 手动安装 课时40、实例:Dashboard 浮动IP访问实例 课时41、实例:Dashboard 块存储的使用 课时42、实例:Dashboard 对象存储的使用 课时43、实例:OpenStack 命令行接口使用 课时44、OpenStack HA与性能调优 课时45、OpenStack Devstack 自动安 课时46、配置 OpenStack Eclipse 开发环境 课时47、配置 OpenStack Eclipse 开发环境 课时48、OpenStack 自动化测试 - 单元测试 课时49、OpenStack 自动化测试 - 集成测试 课时50、Nova 源码结构 课时51、Nova 调用流程源码解析 课时52、Nova 分层架构与业务模型剖析 课时53、Nova 自定义 API 扩展编码实现 课时54、Django 介绍与快速开始 课时55、Django view 和 urls 的用法 课时56、Django Templates 模板的用法(一) 课时57、Django Templates 模板的用法(二) 课时58、Django Form 表单的用法 课时59、Horizon 结构源码剖析(1) 课时60、Horizon 自定义 Panel 编码实现 课时61、Horizon 自定义 DataView 编码实 课时62、企业部署案例:企业私有云规划与案 课时63、OpenStack 和其他开源云平台比较
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值