立即注册 登录
About云-梭伦科技 返回首页

pig2的个人空间 https://www.aboutyun.com/?61 [收藏] [复制] [分享] [RSS]

日志

openstack【juno】入门 【cinder篇】二十一:安装配置块存储节点(cinder)

热度 1已有 4668 次阅读2015-2-26 17:59


原文:

问题导读



1.如何让Linux新增硬盘生效被openstak cinder使用?
2.对于任何一个新增的openstack节点,如果不安装openstack包,是否可以?
3.如何验证创建的volume是否有效?



接上篇:openstack【juno】入门 【cinder篇】二十:cinder介绍及安装配置【控制节点】





准备

这一部分描述怎么样安装配置cinder,为了简单起见,这个配置引用了空的本地存储设备 /dev/sdb的存储节点。它包含一个分区表和一个分区/dev/sdb1 暂满整个设备。这个规定使用LVM驱动的逻辑卷。通过 iSCSI提供给实例。按照下面说明,做一些改动。
安装openstack包

  1. apt-get install ubuntu-cloud-keyring

  1. echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \
  2.   "trusty-updates/juno main" > /etc/apt/sources.list.d/cloudarchive-juno.list


更新源
  1. apt-get update && apt-get dist-upgrade



###################################

1.配置管理网络网卡

IP address: 10.0.0.41

  1. sudo nano /etc/network/interfaces




这里配置如下:



  1. auto eth0
  2. iface eth0 inet static
  3. address 10.0.0.41
  4. netmask 255.255.255.0
  5. gateway 10.0.0.2
  6. dns-nameservers 8.8.8.8



2.修改hosts为block

  1. sudo nano /etc/hosts

修改如下:

  1. 127.0.0.1       localhost
  2. #127.0.1.1      ubuntu
  3. 10.0.0.41 block



3.修改hostname


  1. sudo nano /etc/hostname

内容:
  1. block



4.重启
修改完毕,重启
  1. sudo reboot




5.安装NTP

  1. apt-get install ntp



修改配置文件
  1. sudo nano  /etc/ntp.conf

添加如下内容:

  1. server controller iburst

(如果没有配置host,则直接写ip地址,10.0.0.11 )
其他server注释掉

删除ntp.conf.dhcp
为防止ntp.conf.dhcp文件存在,执行下面命令
  1. rm /var/lib/ntp/ntp.conf.dhcp



重启NTP
  1. service ntp restart



查看
  1. ntpq -c peers

 


6.安装LVM 包

创建物理卷/dev/sdb1
  1. pvcreate /dev/sdb1

 

这里如果遇到Device /dev/sdb1 not found (or ignored by filtering)?,查看    

openstack【juno】入门 【cinder外篇】Device /dev/sdb1 not found (or ignored byfiltering)

需要补充的知识:
openstack存储基础1:浅谈Linux磁盘存储管理

openstack存储基础2:Linux LVM硬盘管理及LVM扩容


当然上面你也可以使用其它device。

7.创建LVM 卷组cinder-volumes

  1. vgcreate cinder-volumes /dev/sdb1



 


存储节点服务在卷组里创建逻辑卷

8.lvm扫描修改

只有实例才能访问块存储卷,底层操作系统管理关于卷的管理设备,默认LVM 卷扫描工具会为块存储扫描 /dev目录。如果租户使用lvm,扫描工具会检测这些卷和缓存他们,这会造成各种各样的问题,必须重新配置lvm扫描设备。

编辑 /etc/lvm/lvm.conf文件完成下面内容
  1. sudo nano  /etc/lvm/lvm.conf


a.在devices 部分,添加一个筛选器接受/dev/sdb设备并拒绝所有其他设备:
  1. devices {
  2. ...
  3. filter = [ "a/sdb/", "r/.*/"]


 


说明:

array数组里包含可以访问和拒绝选项,里面使用正则表达式来表示。这个array数组,必须以 r/.*/结束拒绝其他设备。你可以使用 vgs -vvvv命令,测试过滤器。
提示:
如果你的存储节点底层操作系统使用LVM,也必须添加相关的设备到过滤器。例如:如果操作系统包含 /dev/sda 设备,
  1. filter = [ "a/sda/", "a/sdb/", "r/.*/"]
复制代码

类似如下:
如果你的计算节点底层操作系统使用LVM,你必须修改 /etc/lvm/lvm.conf文件,在这些底层操作系统磁盘的节点上,例如操作系统包含/dev/sda
  1. filter = [ "a/sda/", "r/.*/"]



安装配置块存储卷组件

1.安装
  1. apt-get install cinder-volume python-mysqldb -y


2.编辑文件 /etc/cinder/cinder.conf完成下面内容

  1. sudo nano /etc/cinder/cinder.conf



a.在[database]部分,配置数据库访问
  1. [database]
  2. ...
  3. connection = mysql://cinder:CINDER_DBPASS@controller/cinder


密码需要替换成自己的密码,这里使用的是默认。


b.在 [DEFAULT]部分,配置RabbitMQ消息代理
  1. [DEFAULT]
  2. ...
  3. rpc_backend = rabbit
  4. rabbit_host = controller
  5. rabbit_password = RABBIT_PASS



c.在[DEFAULT] 和 [keystone_authtoken] 部分,配置身份认证访问
  1. [DEFAULT]
  2. ...
  3. auth_strategy = keystone

  4. [keystone_authtoken]
  5. ...
  6. auth_uri = http://controller:5000/v2.0
  7. identity_uri = http://controller:35357
  8. admin_tenant_name = service
  9. admin_user = cinder
  10. admin_password = CINDER_PASS


同样这里使用的是默认密码 CINDER_PASS,如果自定义,则需要替换。
注意:
替换掉 auth_host, auth_port, 和 auth_protocol,防止配置被覆盖。

d.在[DEFAULT]部分,配置my_ip 选项
  1. [DEFAULT]
  2. ...
  3. my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

替换为下面形式

  1. [DEFAULT]
  2. ...
  3. my_ip = 10.0.0.41

 


e.在 [DEFAULT] 部分,配置image服务的位置
  1. [DEFAULT]
  2. ...
  3. glance_host = controller

记得这里配置hosts,如果之前没有配置,则补上
#############################################
打开文件
  1. sudo nano /etc/hosts

添加如下即可
 

#######################################################


f.为排除故障,启用verbose logging 在[DEFAULT] 部分
  1. [DEFAULT]
  2. ...
  3. verbose = True

############################
贴出配置文件如下
  1. [DEFAULT]
  2. rootwrap_config = /etc/cinder/rootwrap.conf
  3. api_paste_confg = /etc/cinder/api-paste.ini
  4. iscsi_helper = tgtadm
  5. volume_name_template = volume-%s
  6. volume_group = cinder-volumes
  7. verbose = True
  8. auth_strategy = keystone
  9. state_path = /var/lib/cinder
  10. lock_path = /var/lock/cinder
  11. volumes_dir = /var/lib/cinder/volumes

  12. rpc_backend = rabbit
  13. rabbit_host = controller
  14. rabbit_password = RABBIT_PASS

  15. auth_strategy = keystone

  16. my_ip = 10.0.0.41

  17. glance_host = controller

  18. verbose = True

  19. [database]
  20. connection = mysql://cinder:CINDER_DBPASS@controller/cinder
  21. [keystone_authtoken]
  22. auth_uri = http://controller:5000/v2.0
  23. identity_uri = http://controller:35357
  24. admin_tenant_name = service
  25. admin_user = cinder
  26. admin_password = CINDER_PASS

#########################################


完成安装

1.重启块存储volume 服务,包括它的依赖
  1. service tgt restart
  2. service cinder-volume restart

 


2.SQLite 如果存在,则移除
  1. rm -f /var/lib/cinder/cinder.sqlite







验证安装

这里描述了怎样验证块存储服务创建volume,注意执行下面命令在控制节点

1.环境变量生效
  1. source admin-openrc.sh

内容如下
  1. export OS_TENANT_NAME=admin
  2. export OS_USERNAME=admin
  3. export OS_PASSWORD=ADMIN_PASS
  4. export OS_AUTH_URL=http://controller:35357/v2.0



2.列出安装成功的服务组件

  1. cinder service-list


 


3.生效demo 租户,作为一个非管理员租户执行下面步骤

  1. source demo-openrc.sh

内容如下:
  1. export OS_TENANT_NAME=demo
  2. export OS_USERNAME=demo
  3. export OS_PASSWORD=DEMO_PASS
  4. export OS_AUTH_URL=http://controller:5000/v2.0



4.创建一个1 GB volume:

  1. cinder create --display-name demo-volume6 1

 





5.验证volume有效性

  1. cinder list


 

由于刚开始没有安装openstack包,所以导致前面创建错误,后来补上,问题得到解决

########################################################
6.出现错误:

问题1:openstack包未安装
  1. cinder list

  1. +--------------------------------------+----------+--------------+------+-------------+----------+-------------+
  2. |                  ID                  |  Status  | Display Name | Size | Volume Type | Bootable | Attached to |
  3. +--------------------------------------+----------+--------------+------+-------------+----------+-------------+
  4. | 9941d347-a589-453a-9136-c327659c7a5f | creating | demo-volume1 |  1   |     None    |  false   |             |
  5. +--------------------------------------+----------+--------------+------+-------------+----------+-------------+


 

查看日志:
  1. 2015-02-16 09:26:13.585 1659 ERROR oslo.messaging._drivers.common [req-0d06d502-d895-4c89-8f47-dde86f696bcc 9695ee1a49a342aa9a78890896b99605 bfb31e69f05b44cd89e1336c09042e2f - - -] ['Traceback (most recent call last):\n', '  File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 133, in _dispatch_and_reply\n    incoming.message))\n', '  File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 176, in _dispatch\n    return self._do_dispatch(endpoint, method, ctxt, args)\n', '  File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 122, in _do_dispatch\n    result = getattr(endpoint, method)(ctxt, **new_args)\n', "TypeError: create_volume() got an unexpected keyword argument 'source_replicaid'\n"]


经过查找资料:
https://bugs.launchpad.net/cinder/+bug/1389687
原因为没有安装Ubuntu云 archive keyring 和 库:

解决办法:
  1. apt-get install ubuntu-cloud-keyring

  1. echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \
  2.   "trusty-updates/juno main" > /etc/apt/sources.list.d/cloudarchive-juno.list


  1. apt-get update && apt-get dist-upgrade


问题2:新增加硬盘未生效 

在我们安装cinder的过程中:官网地址
在执行到创建LVM 物理卷:

  1. pvcreate /dev/sdb1

遇到下面错误

  1. Device /dev/sdb1 not found (or ignored by filtering).

这是由于我们只是挂载了硬盘,但是并没有格式化使用。所以下面交给大家怎么使用起来
  1. fdisk /dev/sdb1
  2. #Type in the followings:
  3. n
  4. p
  5. 1
  6. ENTER
  7. ENTER
  8. t
  9. 8e
  10. w




对于上面的 /dev/sdb1是如何来的那。这里由于使用的是虚拟机,是通过虚拟机增加的第二块硬盘:如下图:




增加硬盘之后,我们通过

  1. fdisk -l

命令,可以查看到



所以我们通过

下面命令,即可完成:
  1. fdisk /dev/sdb1
  2. #Type in the followings:
  3. n
  4. p
  5. 1
  6. ENTER
  7. ENTER
  8. t
  9. 8e
  10. w



更多信息参考:
openstack存储基础1:浅谈Linux磁盘存储管理

openstack存储基础2:Linux LVM硬盘管理及LVM扩容


路过

雷人

握手

鲜花

鸡蛋

发表评论 评论 (2 个评论)

回复 445433045 2016-1-19 11:46
我想知道这个空设备/dev/sdb1是如何映射出来的?
回复 pig2 2016-1-19 21:12
445433045: 我想知道这个空设备/dev/sdb1是如何映射出来的?
这是物理设备

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条