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 来创建虚拟机 )