为Openstack配置块存储cinder

主要参考自: http://www.cnblogs.com/tssc/p/9877026.html#_label1_0

前面几篇随笔分别记录了如何安装部署openstack rocky,以及如何制作win7镜像。

现在研究如何再给某个win7实例额外挂一块E盘。思路如下:

a)控制节点上部署cinder服务;

b)计算节点冒充存储节点部署lvm卷服务;

c)计算阶段在安装系统阶段已经用完了磁盘空间,因此再在控制节点上部署iscsi target模拟一个块存储,然后计算节点挂载此存储作为sdb;

d)cinder连接计算节点的sdb,配置云盘给win7作为E盘使用。

 

1。数据库中配置相关数据:

进入数据库:[root@controller ~]# mysql -uroot -pdbrootpass

创建cinder数据库:MariaDB [(none)]> CREATE DATABASE cinder;

授权(密码为cinderdbpass):MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinderdbpass';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinderdbpass';

MariaDB [(none)]> exit

2。创建cinder用户:

[root@controller ~]# source admin-openrc.sh
[root@controller ~]# openstack user create --domain default --password-prompt cinder
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 75e6f217c75f4d3297f7569654e82b3f |
| name | cinder |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+

3。给cinder用户admin角色:

[root@controller ~]# openstack role add --project service --user cinder admin

4。创建cinder服务实例:

[root@controller ~]# openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2

+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | 899cf8d0539446a0b378fdf560688745 |
| name | cinderv2 |
| type | volumev2 |
+-------------+----------------------------------+

[root@controller ~]# openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | c0329cff7d30445f9ee25c567191788f |
| name | cinderv3 |
| type | volumev3 |
+-------------+----------------------------------+

5。创建块存储服务API endpoints:

[root@controller ~]# openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field | Value |
+--------------+------------------------------------------+
| enabled | True |
| id | 6e21632f7aa14d70b578bdf6a744e463 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 899cf8d0539446a0b378fdf560688745 |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field | Value |
+--------------+------------------------------------------+
| enabled | True |
| id | 9ea322173e034743abb420475355370f |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 899cf8d0539446a0b378fdf560688745 |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field | Value |
+--------------+------------------------------------------+
| enabled | True |
| id | c7be2d34ba714e9a838bafab3c7911c6 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 899cf8d0539446a0b378fdf560688745 |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field | Value |
+--------------+------------------------------------------+
| enabled | True |
| id | 13b50040cdc044319858a3d166a7f6db |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | c0329cff7d30445f9ee25c567191788f |
| service_name | cinderv3 |
| service_type | volumev3 |
| url | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field | Value |
+--------------+------------------------------------------+
| enabled | True |
| id | 66639195f2f14ce89040838d1c4fd666 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | c0329cff7d30445f9ee25c567191788f |
| service_name | cinderv3 |
| service_type | volumev3 |
| url | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field | Value |
+--------------+------------------------------------------+
| enabled | True |
| id | 761a69e6aaec4b21afb7b64d16e7349c |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | c0329cff7d30445f9ee25c567191788f |
| service_name | cinderv3 |
| service_type | volumev3 |
| url | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+

6。安装:

yum install openstack-cinder

7。修改cinder配置:[root@controller ~]# vi /etc/cinder/cinder.conf

[database]

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

[DEFAULT]

transport_url = rabbit://openstack:rabbitpass@controller

auth_strategy = keystone

my_ip = 10.47.181.2

glance_api_servers = http://controller:9292

[keystone_authtoken]

auth_url = http://controller:5000(注意uri改为url)

memcached_servers = controller:11211

auth_type = password

新增如下:

project_domain_name=Default
user_domain_name=Default
project_name=service
username=cinder
password=userpass

[oslo_concurrency]

lock_path = /var/lib/nova/tmp

8。同步数据库:

[root@controller ~]# su -s /bin/sh -c "cinder-manage db sync" cinder

 9。修改Nova配置:

[root@controller ~]# vi /etc/nova/nova.conf

[cinder]

os_region_name=RegionOne

10。重启nova-api服务:

[root@controller ~]# systemctl restart openstack-nova-api.service

11。启动cinder存储服务:

[root@controller ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
[root@controller ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service

12。看:

 下面开始在存储节点服务器安装cinder存储服务

注意:存储节点建议单独部署服务器(最好是物理机),测试时也可以部署在控制节点或者计算节点。

下面我就在计算节点上安装吧。

1。安装LVM软件包:

[root@compute ~]# yum install lvm2 device-mapper-persistent-data

2。启动LVM的metadata服务:

[root@compute ~]# systemctl start lvm2-lvmetad.service
[root@compute ~]# systemctl enable lvm2-lvmetad.service

3。创建LVM物理卷:

[root@compute ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.

4。创建 LVM 卷组 cinder-volumes,块存储服务会在这个卷组中创建逻辑卷:

[root@compute ~]# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created

5。配置过滤器,防止系统出错:

默认只会有openstack实例访问块存储卷组,不过,底层的操作系统也会管理这些设备并尝试将逻辑卷与系统关联。默认情况下LVM卷扫描工具会扫描整个/dev目录,查找所有包含lvm卷的块存储设备。如果其他项目在某个磁盘设备sda,sdc等上使用了lvm卷,那么扫描工具检测到这些卷时会尝试缓存这些lvm卷,可能导致底层操作系统或者其他服务无法正常调用他们的lvm卷组,从而产生各种问题,需要手动配置LVM,让LVM卷扫描工具只扫描包含"cinder-volume"卷组的设备/dev/sdb。

[root@compute ~]# vi /etc/lvm/lvm.conf

devices {

  filter = [ "a/sdb/", "r/.*/"]

}

6。安装相关组件:[root@compute ~]# yum install openstack-cinder targetcli python-keystone

7。配置:[root@compute ~]# vi /etc/cinder/cinder.conf

[database]

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

[DEFAULT]

transport_url = rabbit://openstack:rabbitpass@controller

auth_strategy = keystone

my_ip = 10.47.181.2

glance_api_servers = http://controller:9292

enabled_backends = lvm

[keystone_authtoken]

auth_url = http://controller:5000(注意uri改为url)

memcached_servers = controller:11211

auth_type = password

新增如下:

project_domain_name=Default
user_domain_name=Default
project_name=service
username=cinder
password=userpass

[oslo_concurrency]

lock_path = /var/lib/nova/tmp

新增:

[lvm]
volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group=cinder-volumes
iscsi_protocol=iscsi
iscsi_helper=lioadm

8。启动服务:

[root@compute ~]# systemctl start openstack-cinder-volume.service target.service
[root@compute ~]# systemctl enable openstack-cinder-volume.service target.service

现在,回到控制节点进行验证:

[root@controller ~]# source admin-openrc.sh
[root@controller ~]# openstack volume service list
+------------------+-------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller | nova | enabled | up | 2018-11-06T06:18:53.000000 |
| cinder-volume | compute@lvm | nova | enabled | down | 2018-11-06T06:17:43.000000 |
+------------------+-------------+------+---------+-------+----------------------------+

转载于:https://www.cnblogs.com/zjd1396/p/9910224.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值