OpenStack 对接 Synology ISCSI

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';