首页 > 系统服务 > 详细

linux云计算部署Openstack(五)之部署cinder组件 和openstack案例总结

时间:2020-08-10 19:43:47      阅读:79      评论:0      收藏:0      [点我收藏+]

Openstack部署cinder组件  和openstack案例总结

 

查看IP 桥

 

brctl show

. admin.sh

 

openstack network list

 技术分享图片

 

 技术分享图片

 

 

 

 

 

1.控制节点 建库授权 创建cinder数据库

 

mysql -u root -p123

 

CREATE DATABASE cinder;

 

GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘localhost‘  IDENTIFIED BY ‘123‘;

GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘%‘  IDENTIFIED BY ‘123‘;

GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘controller‘  IDENTIFIED BY ‘123‘;

技术分享图片

 

 

 

. admin.sh

 

openstack user create --domain default --password-prompt cinder

openstack role add --project service --user cinder admin

 技术分享图片

 

 

 

 

openstack service create --name cinderv2 \

--description "OpenStack Block Storage" volumev2

openstack service create --name cinderv3 \

--description "OpenStack Block Storage" volumev3

 技术分享图片

 

 

 

 

openstack endpoint create --region RegionOne \

volumev2 public http://controller:8776/v2/%\(project_id\)s

 

 

openstack endpoint create --region RegionOne \

volumev2 internal http://controller:8776/v2/%\(project_id\)s

 

openstack endpoint create --region RegionOne \

volumev2 admin http://controller:8776/v2/%\(project_id\)s

 技术分享图片

 

 技术分享图片

 

 

 

 

 

openstack endpoint create --region RegionOne \

volumev3 public http://controller:8776/v3/%\(project_id\)s

 

 

openstack endpoint create --region RegionOne \

volumev3 internal http://controller:8776/v3/%\(project_id\)s

 

openstack endpoint create --region RegionOne \

volumev3 admin http://controller:8776/v3/%\(project_id\)s

 技术分享图片

 

 技术分享图片

 

2.控制节点 安装cinder组件

yum install openstack-cinder -y

1.修改cinder配置文件

vim  /etc/cinder/cinder.conf

 

1.

[database]

connection = mysql+pymysql://cinder:123@controller/cinder

 技术分享图片

 

 

 

2.

[DEFAULT]

transport_url = rabbit://openstack:123@controller

auth_strategy = keystone

my_ip = 192.168.20.40

 技术分享图片

 

 

 

3.

[keystone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_id = default

user_domain_id = default

project_name = service

username = cinder

password = 123

 技术分享图片

 

 

 

4.

[oslo_concurrency]

lock_path = /var/lib/cinder/tmp

 技术分享图片

 

 

 

 

2.填充数据库

 

su -s /bin/sh -c "cinder-manage db sync" cinder

 技术分享图片

 

 

 

mysql -uroot -p123

show databases

use cinder

show tables;

 技术分享图片

 

 

 

 

3.修改nova组件的配置文件 增加cinder  启动服务

vim /etc/nova/nova.conf

 

[cinder]

os_region_name = RegionOne

 技术分享图片

 

 

 

systemctl restart openstack-nova-api.service

 

 

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service

systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

 技术分享图片

 

 

 

systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service

 技术分享图片

 

 

 

 

 

 

3.计算节点(即为存储节点)制作vgs部署 和 安装cinder组件

 

1.增加磁盘  制作vgs

lsblk查看磁盘

技术分享图片

 

 

 

pvcreate /dev/sdb创建LVM物理卷/dev/sdb

pvs

vgcreate cinder-volumes /dev/sdb创建LVM卷组cinder-volumes

vgs

 技术分享图片

 

 

 

2.计算节点安装lvm程序包 安装cinder和targetcli和keystone包

yum install lvm2 device-mapper-persistent-data -y安装支持的lvm程序包

systemctl enable lvm2-lvmetad.service

systemctl start lvm2-lvmetad.service

 

 

yum install openstack-cinder targetcli python-keystone -y

 

3.修改配置文件cinder 启动服务,查看服务状态

vim /etc/cinder/cinder.conf

1.

[DEFAULT]

transport_url = rabbit://openstack:123@controller

auth_strategy = keystone

my_ip = 192.168.20.11

enabled_backends = lvm

glance_api_servers = http://controller:9292

 技术分享图片

 

 

 

2.

[database]

connection = mysql+pymysql://cinder:123@controller/cinder

 技术分享图片

 

 

 

3.

[keystone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_id = default

user_domain_id = default

project_name = service

username = cinder

password = 123

 技术分享图片

 

 

 

 

4.

[oslo_concurrency]

lock_path = /var/lib/cinder/tmp

 技术分享图片

 

 

 

5.

添加到最后

[lvm]

volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver

volume_group = cinder-volumes

iscsi_protocol = iscsi

iscsi_helper = lioadm

 技术分享图片

 

 

 

 

启动服务 查看状态

systemctl enable openstack-cinder-volume.service target.service

systemctl start openstack-cinder-volume.service target.service

systemctl status openstack-cinder-volume.service target.service

 技术分享图片

 

 

4.控制节点验证 是否存在volume

 

.  admin.sh

openstack volume service list

 技术分享图片

 

 

4.网页 部署

控制节点和计算节点 部署完成后 登录会显示出卷这个选项

 技术分享图片

 

 

 

1.创建卷

 技术分享图片

 

 

 

2.管理 连接

 技术分享图片

 

 

 

连接

 技术分享图片

 

 技术分享图片

 

 

 

 

 

3.查看实例 控制台 进行验证

启动实例

 技术分享图片

 

 技术分享图片

 

 

 

 

 

 

 

5. KVM??

 

 

 

 

6.总结 openstack流程

 

1.Openstack 典型环境架构  -- IaaS --  vm

 技术分享图片

 

 

 

2.openstack新建云主机流程图:

 技术分享图片

 

 

3.***openstack 虚拟机  启动过程如下

nova 计算服务 提供实例

glance 镜像服务 提供系统

neturn 网络服务  提供网络

cinder 块存储服务  提供存储 创建卷 (额外的存储空间)

 

 

openstack 流程图 我修改的

1.horizon/clienct   提出请求   keystone获取认证信息

2.keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。

3.界面或命令行  通过RESTful API   向nova-api发送一个  boot instance的请求(携带auth-token令牌)。

4.nova-api接受请求后   keystone发送  认证请求, 查看token是否为  有效用户和token。(验证)

5.keystone验证  token是否有效,如有效  则返回有效的认证  和对应的角色(注:有些操作需要有角色权限才能操作)。

6.通过keystone  认证后的nova-api   和数据库   通讯。

7.初始化  新建虚拟机的  数据库记录。

8.nova-api通过rpc.call   nova-scheduler请求   是否有创建虚拟机的  资源(Host ID)。

9.nova-scheduler进程   侦听消息队列,获取nova-api的请求。

10.nova-scheduler  读取  查询nova数据库中   计算资源的情况, 然后 通过调度算法   计算符合虚拟机创建需要  的主机。(权重的计算)

11.对于有  符合虚拟机创建  的主机,nova-scheduler   更新数据库中  虚拟机对应的   物理主机信息。

12.nova-scheduler  通过rpc.cast向  nova-compute   发送对应的   创建虚拟机  请求的消息。

 

13.nova-compute  会从对应的消息队列中   获取   创建虚拟机  请求的消息。

14.nova-compute  通过rpc.call   向nova-conductor请求   获取虚拟机消息。(Flavor)

15.nova-conductor  从消息队队列中   拿到nova-compute请求消息。

 

16.nova-conductor  根据消息  db数据库   查询虚拟机对应的信息。

17.nova-conductor  从db数据库中  获取到  虚拟机对应信息。

 

18.nova-conductor  把从数据库得到的  虚拟机信息  通过消息的方式   发送到消息队列中。

19.nova-compute    从对应的消息队列中     获取虚拟机信息消息。

 

20.nova-compute  通过keystone的RESTfull API   拿到认证的token令牌,然后通过HTTP请求  glance-api获取   创建虚拟机   所需要镜像。

21.glance-api   向keystone   认证token  是否有效,并返回验证结果。

22.glance-api  的验证keystone的   token令牌通过,glance从后端提取镜像  返回给   nova-compute获得虚拟机镜像信息(URL)。

 

23.nova-compute  通过keystone的RESTfull API拿到认证的token令牌 ,然后 通过HTTP请求neutron-server获取   创建虚拟机   所需要的网络信息。 (server 服务响应请求   网卡ip)  (plugins调度,来规划网络实现,  aginent具体把网络资源创建出来)

??24.neutron-server  keystone验证  token令牌  是否有效,并返回验证结果。

25.neutron的  token验证通过,nova-compute  获得 neutron -server  返回的  虚拟机网络信息。

 

26.nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP 请求到  cinder-api获取创建虚拟机   所需要的   持久化存储信息。

27.cinder-api向keystone认证token是否有效,并返回验证结果。

28. token验证通过,nova-compute获得虚拟机持久化存储信息。 ( 提供存储 存储节点volume  通过调用存储后端的NFS 或者LVM  返回给computer)

29.nova-compute根据   instance的信息   调用配置的虚拟化驱动   来创建虚拟机。 (Hypervisor根据computer的  镜像glance   网络neutron 和存储cinder 来创建虚拟机 )

 

部署cinder组件  和openstack案例总结

 

查看IP 桥

 

brctl show

. admin.sh

 

openstack network list

技术分享图片 

技术分享图片 

 

 

1.控制节点 建库授权 创建cinder数据库

 

mysql -u root -p123

 

CREATE DATABASE cinder;

 

GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘localhost‘  IDENTIFIED BY ‘123‘;

GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘%‘  IDENTIFIED BY ‘123‘;

GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘controller‘  IDENTIFIED BY ‘123‘;

技术分享图片 

 

. admin.sh

 

openstack user create --domain default --password-prompt cinder

openstack role add --project service --user cinder admin

技术分享图片 

 

 

openstack service create --name cinderv2 \

--description "OpenStack Block Storage" volumev2

openstack service create --name cinderv3 \

--description "OpenStack Block Storage" volumev3

技术分享图片 

 

 

openstack endpoint create --region RegionOne \

volumev2 public http://controller:8776/v2/%\(project_id\)s

 

 

openstack endpoint create --region RegionOne \

volumev2 internal http://controller:8776/v2/%\(project_id\)s

 

openstack endpoint create --region RegionOne \

volumev2 admin http://controller:8776/v2/%\(project_id\)s

技术分享图片 

技术分享图片 

 

 

openstack endpoint create --region RegionOne \

volumev3 public http://controller:8776/v3/%\(project_id\)s

 

 

openstack endpoint create --region RegionOne \

volumev3 internal http://controller:8776/v3/%\(project_id\)s

 

openstack endpoint create --region RegionOne \

volumev3 admin http://controller:8776/v3/%\(project_id\)s

 

技术分享图片 

技术分享图片 

 

 

 

 

2.控制节点 安装cinder组件

yum install openstack-cinder -y

1.修改cinder配置文件

vim  /etc/cinder/cinder.conf

 

1.

[database]

connection = mysql+pymysql://cinder:123@controller/cinder

技术分享图片 

 

2.

[DEFAULT]

transport_url = rabbit://openstack:123@controller

auth_strategy = keystone

my_ip = 192.168.20.40

技术分享图片 

 

3.

[keystone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_id = default

user_domain_id = default

project_name = service

username = cinder

password = 123

技术分享图片 

 

4.

[oslo_concurrency]

lock_path = /var/lib/cinder/tmp

技术分享图片 

 

 

2.填充数据库

 

su -s /bin/sh -c "cinder-manage db sync" cinder

技术分享图片 

 

mysql -uroot -p123

show databases

use cinder

show tables;

技术分享图片 

 

 

3.修改nova组件的配置文件 增加cinder  启动服务

vim /etc/nova/nova.conf

 

[cinder]

os_region_name = RegionOne

技术分享图片 

 

systemctl restart openstack-nova-api.service

 

 

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service

systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

技术分享图片 

 

systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service

技术分享图片 

 

 

 

 

3.计算节点(即为存储节点)制作vgs部署 和 安装cinder组件

 

1.增加磁盘  制作vgs

lsblk查看磁盘

技术分享图片 

pvcreate /dev/sdb创建LVM物理卷/dev/sdb

pvs

vgcreate cinder-volumes /dev/sdb创建LVM卷组cinder-volumes

vgs

技术分享图片 

 

2.计算节点安装lvm程序包 安装cinder和targetcli和keystone包

yum install lvm2 device-mapper-persistent-data -y安装支持的lvm程序包

systemctl enable lvm2-lvmetad.service

systemctl start lvm2-lvmetad.service

 

 

yum install openstack-cinder targetcli python-keystone -y

 

3.修改配置文件cinder 启动服务,查看服务状态

vim /etc/cinder/cinder.conf

1.

[DEFAULT]

transport_url = rabbit://openstack:123@controller

auth_strategy = keystone

my_ip = 192.168.20.11

enabled_backends = lvm

glance_api_servers = http://controller:9292

技术分享图片 

 

2.

[database]

connection = mysql+pymysql://cinder:123@controller/cinder

技术分享图片 

 

3.

[keystone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_id = default

user_domain_id = default

project_name = service

username = cinder

password = 123

技术分享图片 

 

 

4.

[oslo_concurrency]

lock_path = /var/lib/cinder/tmp

技术分享图片 

 

5.

添加到最后

[lvm]

volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver

volume_group = cinder-volumes

iscsi_protocol = iscsi

iscsi_helper = lioadm

技术分享图片 

 

 

启动服务 查看状态

systemctl enable openstack-cinder-volume.service target.service

systemctl start openstack-cinder-volume.service target.service

systemctl status openstack-cinder-volume.service target.service

技术分享图片 

4.控制节点验证 是否存在volume

 

.  admin.sh

openstack volume service list

技术分享图片 

4.网页 部署

控制节点和计算节点 部署完成后 登录会显示出卷这个选项

 

技术分享图片 

1.创建卷

技术分享图片 

 

2.管理 连接

技术分享图片 

 

连接

技术分享图片 

技术分享图片 

 

 

3.查看实例 控制台 进行验证

启动实例

技术分享图片 

 

 

技术分享图片 

 

 

5. KVM??

 

 

 

 

6.总结 openstack流程

 

1.Openstack 典型环境架构  -- IaaS --  vm

技术分享图片 

 

2.openstack新建云主机流程图:

技术分享图片 

3.***openstack 虚拟机  启动过程如下

nova 计算服务 提供实例

glance 镜像服务 提供系统

neturn 网络服务  提供网络

cinder 块存储服务  提供存储 创建卷 (额外的存储空间)

 

 

openstack 流程图 我修改的

1.horizon/clienct   提出请求   keystone获取认证信息

2.keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。

3.界面或命令行  通过RESTful API   向nova-api发送一个  boot instance的请求(携带auth-token令牌)。

4.nova-api接受请求后   keystone发送  认证请求, 查看token是否为  有效用户和token。(验证)

5.keystone验证  token是否有效,如有效  则返回有效的认证  和对应的角色(注:有些操作需要有角色权限才能操作)。

6.通过keystone  认证后的nova-api   和数据库   通讯。

7.初始化  新建虚拟机的  数据库记录。

8.nova-api通过rpc.call   nova-scheduler请求   是否有创建虚拟机的  资源(Host ID)。

9.nova-scheduler进程   侦听消息队列,获取nova-api的请求。

10.nova-scheduler  读取  查询nova数据库中   计算资源的情况, 然后 通过调度算法   计算符合虚拟机创建需要  的主机。(权重的计算)

11.对于有  符合虚拟机创建  的主机,nova-scheduler   更新数据库中  虚拟机对应的   物理主机信息。

12.nova-scheduler  通过rpc.cast向  nova-compute   发送对应的   创建虚拟机  请求的消息。

 

13.nova-compute  会从对应的消息队列中   获取   创建虚拟机  请求的消息。

14.nova-compute  通过rpc.call   向nova-conductor请求   获取虚拟机消息。(Flavor)

15.nova-conductor  从消息队队列中   拿到nova-compute请求消息。

 

16.nova-conductor  根据消息  db数据库   查询虚拟机对应的信息。

17.nova-conductor  从db数据库中  获取到  虚拟机对应信息。

 

18.nova-conductor  把从数据库得到的  虚拟机信息  通过消息的方式   发送到消息队列中。

19.nova-compute    从对应的消息队列中     获取虚拟机信息消息。

 

20.nova-compute  通过keystone的RESTfull API   拿到认证的token令牌,然后通过HTTP请求  glance-api获取   创建虚拟机   所需要镜像。

21.glance-api   向keystone   认证token  是否有效,并返回验证结果。

22.glance-api  的验证keystone的   token令牌通过,glance从后端提取镜像  返回给   nova-compute获得虚拟机镜像信息(URL)。

 

23.nova-compute  通过keystone的RESTfull API拿到认证的token令牌 ,然后 通过HTTP请求neutron-server获取   创建虚拟机   所需要的网络信息。 (server 服务响应请求   网卡ip)  (plugins调度,来规划网络实现,  aginent具体把网络资源创建出来)

??24.neutron-server  keystone验证  token令牌  是否有效,并返回验证结果。

25.neutron的  token验证通过,nova-compute  获得 neutron -server  返回的  虚拟机网络信息。

 

26.nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP 请求到  cinder-api获取创建虚拟机   所需要的   持久化存储信息。

27.cinder-api向keystone认证token是否有效,并返回验证结果。

28. token验证通过,nova-compute获得虚拟机持久化存储信息。 ( 提供存储 存储节点volume  通过调用存储后端的NFS 或者LVM  返回给computer)

29.nova-compute根据   instance的信息   调用配置的虚拟化驱动   来创建虚拟机。 (Hypervisor根据computer的  镜像glance   网络neutron 和存储cinder 来创建虚拟机 )

 

linux云计算部署Openstack(五)之部署cinder组件 和openstack案例总结

原文:https://www.cnblogs.com/kk5698/p/13471361.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!