十、安装和配置Cinder
1.Controller节点的安装和配置
(开机进行安装前,查看一下计算节点compute是否有多出来的硬盘,没有/已经自动分配使用的。重新添加一张硬盘进去)(正确的如图所示)
如果没有/不确定是否正确创建,则进行以下操作(在compute节点)
可查看到有没有成功创建sdb硬盘
lsblk
开机启动后需要给一下身份验证(相当于密码锁)(控制节点)
source ~/.bashrc
(1)创建数据库(controller)
mysql -u root -p000000
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* \
TO 'cinder'@'localhost' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON cinder.* \
TO 'cinder'@'%' IDENTIFIED BY '000000';
exit
确保exit退出后执行下面命令
(2)创建用户、角色和服务
openstack user create --domain default --password 000000 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
(3)创建Endpoints
1 (下面有整合成一句的)
openstack endpoint create --region RegionOne \
volumev2 public http://controller:8776/v2/%\(project_id\)s
2
openstack endpoint create --region RegionOne \
volumev2 internal http://controller:8776/v2/%\(project_id\)s
3
openstack endpoint create --region RegionOne \
volumev2 admin http://controller:8776/v2/%\(project_id\)s
4
openstack endpoint create --region RegionOne \
volumev3 public http://controller:8776/v3/%\(project_id\)s
5
openstack endpoint create --region RegionOne \
volumev3 internal http://controller:8776/v3/%\(project_id\)s
6
openstack endpoint create --region RegionOne \
volumev3 admin http://controller:8776/v3/%\(project_id\)s
整合
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
创建成功
(4)安装软件
yum -y install openstack-cinder
如果这里安装不了,一直显示扫描镜像,
查看多余的网关
route -n
一般来说是第二张网卡里面配置的时候放网关进去了会导致这样子,可以直接用下面命令删除第二张网卡的网关(网关ip根据自己的改)
route del default gw 10.0.1.1
(5)修改配置
修改/etc/cinder/cinder.conf
vim /etc/cinder/cinder.conf
[DEFAULT](ip改自己controller控制节点的)
transport_url = rabbit://openstack:000000@controller
auth_strategy = keystone
my_ip = 192.168.200.10
[database]
connection = mysql+pymysql://cinder:000000@controller/cinder
[keystone_authtoken]
www_authenticate_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 = 000000
[oslo_concurrency] (这步弄完后保存退出)
lock_path = /var/lib/cinder/tmp
(6)初始化数据库
su -s /bin/sh -c "cinder-manage db sync" cinder
会显示下述内容(警告信息只是提示您’logdir’配置项已被废弃,但其他的已经更新配置,不用管)
(7)配置Nova使用Cinder
修改Nova配置文件
vim /etc/nova/nova.conf
找到
[cinder] (添加后保存退出)
os_region_name = RegionOne
重启NovaAPI服务
systemctl restart openstack-nova-api.service
(8)使能和启动服务
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
2.存储节点(Compute节点)的安装和配置
(1)配置逻辑卷
安装LVM软件(compute)
yum install -y lvm2 device-mapper-persistent-data
启动和使能LVM服务
systemctl enable lvm2-lvmetad.service
systemctl start lvm2-lvmetad.service
硬盘分区:将/dev/sdb分成三个区
先查看自己计算节点有多少个硬盘
lsblk
如果就一块硬盘,回到上面十.1新建一块硬盘
如果添加了硬盘,再次使用lsblk查看没有显示,则重启reboot,让他生效(大部分添加后就生效)
这里的vdb一定要看你自己新建的空硬盘是什么名,第二块为sdb,三sdc
fdisk /dev/sdb
lsblk
创建逻辑卷组(这里的sdb1是上一步的新建分区分出来的小区,根据自己的分区情况改)
pvcreate /dev/sdb1
vgcreate cinder-volumes /dev/sdb1
成功创建物理卷是绿的
修改LVM配置
vim /etc/lvm/lvm.conf
devices {
查找关键字filter =
找到后按o向下编辑,注意缩进 添加该行,刚才如果分sdc就改成sdc1
filter = [ "a/sdb1/", "r/.*/"]
保存退出
(2)安装Cinder软件
yum -y install openstack-cinder targetcli python-keystone
(3)修改Cinder配置
(如果显示找不到文件,就手打,用补全键补出来)
vim /etc/cinder/cinder.conf
[DEFAULT](进入文档第一个就是)ip改自己compute计算节点的
transport_url = rabbit://openstack:000000@controller
auth_strategy = keystone
my_ip = 192.168.200.20
enabled_backends = lvm
glance_api_servers = http://controller:9292
[database]
connection = mysql+pymysql://cinder:000000@controller/cinder
[keystone_authtoken]
www_authenticate_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 = 000000
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[lvm](文档中是没有的,在文档最后整个添加进去)
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
(4)使能和启动服务
systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service
3.验证
在控制节点controller 执行
openstack volume service list