OpenStack官方对接说明
https://docs.openstack.org/ocata/config-reference/block-storage/drivers/synology-dsm-driver.html
测试环境
Centos7.6 1810
OpenStack 17.0.12
10.22.0.26
DSM 6.2.2 update3
10.22.0.62
DSM 6.2 update2
10.22.0.63
对接步骤
修改cinder.conf与synology NAS进行对接
/etc/cinder/cinder.conf
这边添加nas1(10.22.0.62)与nas2(10.22.0.63)
修改enabled_backends
enabled_backends=lvm,nas1,nas2
修改default_volume_type(默认创建卷的存储位置)
default_volume_type=nas1
添加nas1与nas2的iscsi连接配置
volume_backend_name=[建立的名称]
volume_driver=cinder.volume.drivers.synology.synology_iscsi.SynoISCSIDriver
iscs_protocol=iscsi
iscsi_ip_address=[NAS的ip]
driver_use_ssl=False
synology_admin_port=[登录NAS的端口http]
synology_username=[登录NAS的管理员账号]
synology_password=[登录NAS的管理员密码]
synology_pool_name=[建立的iscsi lun所在NAS的存储空间,存储空间1就是volume1]

重启cinder-volume服务以应用配置
service openstack-cinder-volume restart
检查cinder服务状态
cinder-manage service list
确认新增加的存储服务可以正常启动且工作状态正常(State xxx表示工作不正常)
如果没有正常新增出来可以尝试重启下Centos

登录网页版
admin 密码可以在以下文件中查看到
cat /root/keystonerc_admin
创建卷类型

创建nas1并查看拓展规格

创建

键值为:volume_backend_name
值为:nas1

第二个就把nas1换成nas2

测试创建卷

创建一个在nas1(10.22.0.62)上的10G卷

可以通过后台日志查看创建状态:
tail -f /var/log/cinder/volume.log

在nas1上检查是否有一个对应的lun被创建了

测试连接到实例
创建一个在nas2(10.22.0.63)上的10G卷并且将cirros作为源

创建实例

选择刚刚创建的卷

查看nas2上的target和lun


将nas1之前创建的卷也连接到实例

查看nas1上的target

测试删除卷
在OpenStack中删除卷,NAS上对应的卷也会被一起删除


安装的测试环境
配置系统语言以及字符集
vi /etc/environment
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
配置hostname解析
vi /etc/hosts
配置yum源
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
禁用firewalld、NetworkManager、SElinux
systemctl disable firewalld
systemctl stop firewalld
systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl enable network
systemctl start network
vi /etc/selinux/config
SELINUX=disabled
安装openstack queens版本库
yum install -y centos-release-openstack-queens
更新系统
yum update -y
reboot
重启后安装OpenStack Packstack软件包
yum install -y openstack-packstack
单节点安装
packstack –allinone
或者使用配置安装
导出配置
packstack --gen-answer-file=answer.ini
修改配置
vi answer.ini
answer.ini 参数
CONFIG_SERVICE_WORKERS 每个服务的worker个数,不指定就使用CPU核数
CONFIG_CINDER_INSTALL 是否安装cinder
CONFIG_CONTROLLER_HOST 控制节点的IP
CONFIG_COMPUTE_HOSTS 计算节点的IP
CONFIG_NETWORK_HOSTS 网络节点的IP
CONFIG_NEUTRON_ML2_TYPE_DRIVERS 设置网络支持协议
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS 设置虚拟交换机
CONFIG_NEUTRON_OVS_BRIDGE_IFACES 设置虚拟交换机所连接的物理网卡
CONFIG_NEUTRON_OVS_TUNNEL_IF 设置隧道网络使用的网卡
CONFIG_KEYSTONE_ADMIN_PW 设置admin用户的密码
CONFIG_MARIADB_PW 设置mysql数据库root用户密码
指定配置文件安装
packstack --answer-file=answer.ini
其他
删除没有用的cinder-volume服务
cinder-manage service remove [Binary] [Host]

强制删除错误的卷
通过targetcli删除iscsi和block
/backstores/block> delete iqn.2010-10.org.openstack:volume-3d62cd9d-5930-44b8-ae55-5e64173f6f95
/iscsi> delete iqn.2010-10.org.openstack:volume-3d62cd9d-5930-44b8-ae55-5e64173f6f95/
删除lvm
lvs | grep 3d62cd9d-5930-44b8-ae55-5e64173f6f95
lvremove /dev/cinder-ssd/volume-3d62cd9d-5930-44b8-ae55-5e64173f6f95
删除数据库信息
进入数据库
mysql -uroot -pxxxx
选择数据库表
use cinder;
select找到出错的数据:
select id, status, display_name from volumes where id='3d62cd9d-5930-44b8-ae55-5e64173f6f95';
修改数据库记录状体:
update volumes set deleted=1 where id='3d62cd9d-5930-44b8-ae55-5e64173f6f95';