设为首页 收藏本站
查看: 1131|回复: 0

[经验分享] OpenStack 搭建(三)

[复制链接]

尚未签到

发表于 2018-5-31 13:30:17 | 显示全部楼层 |阅读模式
  OpenStack存储模块-Cinder
  在前两篇文档中介绍了OpenStack的一些基础搭建,但是并没有加入存储模块。这篇主要介绍一下openstack的存储模块Cinder.
  存储主要分为三种:

  •   块存储:硬盘,存储设备,磁盘整列等。
  •   文件存储:如NFS,FTP等主要用于文件共享的存储。
  •   对象存储:分布式文件系统,swift等。有metadata(元数据)的数据描述作为支持的存储方式。

  Cinder支持以上的多种存储方式。
  

  Cinder组件

  •   cinder-api: 接受API的请求,路由到cinder-volume来执行。
  •   cinder-volume:响应请求,读取或写入数据库维护状态信息,通过消息队列机制与其它进程交互(如cinder-scheduler),也可以直接与上层块存储提供的硬件或软件进行交互。管理存储。
  •   cinder-scheduler: 守护进程。类似于Nova-scheduler,为存储实例选择最优的块存储节点。
  •   cinder-backup:守护进程。服务提供任何种类备份卷到一个备份存储提供者。就像``cinder-volume``服务,它与多种存储提供者在驱动架构下进行交互。

      

  Cinder数据库配置和注册服务
  http://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/cinder-controller-install.html
  创建数据库并授权:
MariaDB [(none)]> CREATE DATABASE cinder;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%'  IDENTIFIED BY 'cinder';  创建服务证书,完成这些步骤:
# source  admin-openstack.sh
# openstack user create --domain default --password-prompt cinder  添加 admin 角色到 cinder 用户上:
# openstack role add --project service --user cinder admin  创建 cinder 和 cinderv2 服务实体:
# openstack service create --name cinder  --description "OpenStack Block Storage" volume
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 27b797388aaa479ea5542048df32b3d8 |
| name        | cinder                           |
| type        | volume                           |
+-------------+----------------------------------+# openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 85f9890df5444a5d9a989c96b630c7a7 |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+  创建块设备存储服务的 API 入口点,需要注册两个版本:
openstack endpoint create --region RegionOne  volume public http://172.16.10.50:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne  volume internal http://172.16.10.50:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne  volume admin http://172.16.10.50:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev2 public http://172.16.10.50:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://172.16.10.50:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://172.16.10.50:8776/v2/%\(tenant_id\)s  Cinder安装配置

  在控制节点安装cinder组件:
# yum install -y openstack-cinder  编辑 /etc/cinder/cinder.conf,同时完成如下动作:
  配置数据库(密码为cinder):

connection =  mysql+pymysql://cinder:cinder@172.16.10.50/cinder同步块设备服务的数据库:
# su -s /bin/sh -c "cinder-manage db sync" cinder  确认数据库同步成功:
# mysql -h 172.16.10.50 -ucinder -pcinder -e "use cinder;show tables;"  在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问:
[DEFAULT]
rpc_backend = rabbit[oslo_messaging_rabbit]
...
rabbit_host = 172.16.10.50
rabbit_userid = openstack
rabbit_password = openstack在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://172.16.10.50:5000
auth_url = http://172.16.10.50:35357
memcached_servers = 172.16.10.50:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder在 [oslo_concurrency] 部分,配置锁路径:
lock_path = /var/lib/cinder/tmp

编辑文件 /etc/nova/nova.conf 并添加如下到其中:
[cinder]
os_region_name= RegionOne  重启nova-api:

# systemctl restart openstack-nova-api.service  启动cinder-api(端口8776)和cinder-scheduler:
# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service  

  安装配置存储节点

  存储节点可以配置在计算节点上,也可以有其它的专用存储服务,这里使用计算机节点提供存储服务。
  计算节点上需要有一个外挂磁盘。
创建LVM 物理卷 /dev/sdb:


创建 LVM 卷组 cinder-volumes:
# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
# vgcreate cinder-volumes /dev/sdb
  Volume group "cinder-volumes" successfully created  设置只有实例可以访问块存储卷组:
默认情况下,LVM卷扫描工具会扫描``/dev`` 目录,查找包含卷的块存储设备。如果项目在他们的卷上使用LVM,扫描工具检测到这些卷时会尝试缓存它们,可能会在底层操作系统和项目卷上产生各种问题。必须重新配置LVM,让它只扫描包含``cinder-volume``卷组的设备。编辑``/etc/lvm/lvm.conf``文件并完成下面的操作:
在``devices``部分,添加一个过滤器,只接受``/dev/sdb``设备,拒绝其他所有设备:
devices {
...
filter = [ "a/sdb/", "r/.*/"]每个过滤器组中的元素都以``a``开头,即为 accept,或以 r 开头,即为**reject**,并且包括一个设备名称的正则表达式规则。过滤器组必须以``r/.*/``结束,过滤所有保留设备。您可以使用 :命令:`vgs -vvvv` 来测试过滤器。
  

  在存储节点安装配置cinder
  安装软件包:
yum install -y openstack-cinder targetcli python-keystone  配置存储节点的cinder:
  在存储节点的cinder配置和在控制节点的配置差别不是很大,可以直接从控制节点拷贝并修改权限:
# scp /etc/cinder/cinder.conf  172.16.10.51:/etc/cinder/在cinder.conf 的``[lvm]``部分,配置LVM后端以LVM驱动结束,卷组``cinder-volumes`` ,iSCSI 协议和正确的 iSCSI服务,如果没有此模块可以手动添加:
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm在 [DEFAULT] 部分,启用 LVM 后端:
enabled_backends = lvm启动块存储卷服务及其依赖的服务:
# systemctl enable openstack-cinder-volume.service target.service
# systemctl start openstack-cinder-volume.service target.service  在控制节点验证是否配置成功,正常为up状态,如果不是UP状态则不能添加云硬盘:

# source  admin-openstack.sh
# cinder service-list
+------------------+-----------+------+---------+-------+----------------------------+-----------------+
|      Binary      |    Host   | Zone |  Status | State |         Updated_at         | Disabled Reason |
+------------------+-----------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler |   node1   | nova | enabled |   up  | 2016-11-02T09:16:34.000000 |        -        |
|  cinder-volume   | node2@lvm | nova | enabled |   up  | 2016-11-02T09:16:39.000000 |        -        |
+------------------+-----------+------+---------+-------+----------------------------+-----------------+  

  为虚拟机添加一个卷
  http://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/launch-instance-cinder.html
  之前已经安装了Horizon,可以直接通过dashboard添加云硬盘操作。也可以根据官方的文档命令行添加云硬盘。
  如果在Web管理界面出现云硬盘信息,说明添加成功。
DSC0000.jpg

  

  查看虚拟机上是否有此虚拟硬盘:
$ sudo fdisk -l
Disk /dev/vdb: 1073 MB, 1073741824 bytes
16 heads, 63 sectors/track, 2080 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000  格式化硬盘,并mount:
$ sudo fdisk /dev/vdb
n p w
$ sudo mkfs.ext4 /dev/vdb1
$ sudo  mount /dev/vdb1 /data/  

  可以对正在运行的虚拟机上添加云硬盘,不建议动态的扩容或收缩硬盘容量,可能会造成数据丢失的情况。在实际生产环境中,不建议使用cinder的各种复杂功能。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-486288-1-1.html 上篇帖子: 云计算与openstack学习(三) 下篇帖子: openstack neutron
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表