立即注册
登录
About云-梭伦科技
返回首页
pig2的个人空间
https://www.aboutyun.com/?61
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
首页
Portal
专题
BBS
面试
办公|编程助手
更多
我的空间
好友
帖子
收藏
道具
勋章
任务
动态
日志
相册
分享
记录
留言板
群组
导读
日志
openstack【juno】入门 【cinder篇】二十一:安装配置块存储节点(cinder)
热度
1
已有 4668 次阅读
2015-2-26 17:59
原文:
http://www.aboutyun.com/thread-11681-1-1.html
问题导读
1.如何让Linux新增硬盘生效被openstak cinder使用?
2.对于任何一个新增的openstack节点,如果不安装openstack包,是否可以?
3.如何验证创建的volume是否有效?
接上篇:
openstack【juno】入门 【cinder篇】二十:cinder介绍及安装配置【控制节点】
准备
这一部分描述怎么样安装配置cinder,为了简单起见,这个配置引用了空的本地存储设备 /dev/sdb的存储节点。它包含一个分区表和一个分区/dev/sdb1 暂满整个设备。这个规定使用LVM驱动的逻辑卷。通过 iSCSI提供给实例。按照下面说明,做一些改动。
安装openstack包
apt-get install ubuntu-cloud-keyring
echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \
"trusty-updates/juno main" > /etc/apt/sources.list.d/cloudarchive-juno.list
更新源
apt-get update && apt-get dist-upgrade
###################################
1.配置管理网络网卡
IP address: 10.0.0.41
sudo nano /etc/network/interfaces
这里配置如下:
auto eth0
iface eth0 inet static
address 10.0.0.41
netmask 255.255.255.0
gateway 10.0.0.2
dns-nameservers 8.8.8.8
2.修改hosts为block
sudo nano /etc/hosts
修改如下:
127.0.0.1 localhost
#127.0.1.1 ubuntu
10.0.0.41 block
3.修改hostname
sudo nano /etc/hostname
内容:
block
4.重启
修改完毕,重启
sudo reboot
5.安装NTP
apt-get install ntp
修改配置文件
sudo nano /etc/ntp.conf
添加如下内容:
server controller iburst
(如果没有配置host,则直接写ip地址,10.0.0.11 )
其他server注释掉
删除ntp.conf.dhcp
为防止ntp.conf.dhcp文件存在,执行下面命令
rm /var/lib/ntp/ntp.conf.dhcp
重启NTP
service ntp restart
查看
ntpq -c peers
6.安装LVM 包
创建物理卷/dev/sdb1
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
vgcreate cinder-volumes /dev/sdb1
存储节点服务在卷组里创建逻辑卷
8.lvm扫描修改
只有实例才能访问块存储卷,底层操作系统管理关于卷的管理设备,默认LVM 卷扫描工具会为块存储扫描 /dev目录。如果租户使用lvm,扫描工具会检测这些卷和缓存他们,这会造成各种各样的问题,必须重新配置lvm扫描设备。
编辑 /etc/lvm/lvm.conf文件完成下面内容
sudo nano /etc/lvm/lvm.conf
a.在devices 部分,添加一个筛选器接受/dev/sdb设备并拒绝所有其他设备:
devices {
...
filter = [ "a/sdb/", "r/.*/"]
说明:
array数组里包含可以访问和拒绝选项,里面使用正则表达式来表示。这个array数组,必须以 r/.*/结束拒绝其他设备。你可以使用 vgs -vvvv命令,测试过滤器。
提示:
如果你的存储节点底层操作系统使用LVM,也必须添加相关的设备到过滤器。例如:如果操作系统包含 /dev/sda 设备,
filter = [ "a/sda/", "a/sdb/", "r/.*/"]
复制代码
类似如下:
如果你的计算节点底层操作系统使用LVM,你必须修改 /etc/lvm/lvm.conf文件,在这些底层操作系统磁盘的节点上,例如操作系统包含/dev/sda
filter = [ "a/sda/", "r/.*/"]
安装配置块存储卷组件
1.安装
apt-get install cinder-volume python-mysqldb -y
2.编辑文件 /etc/cinder/cinder.conf完成下面内容
sudo nano /etc/cinder/cinder.conf
a.在[database]部分,配置数据库访问
[database]
...
connection = mysql://cinder:CINDER_DBPASS@controller/cinder
密码需要替换成自己的密码,这里使用的是默认。
b.在 [DEFAULT]部分,配置RabbitMQ消息代理
[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
c.在[DEFAULT] 和 [keystone_authtoken] 部分,配置身份认证访问
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = cinder
admin_password = CINDER_PASS
同样这里使用的是默认密码 CINDER_PASS,如果自定义,则需要替换。
注意:
替换掉 auth_host, auth_port, 和 auth_protocol,防止配置被覆盖。
d.在[DEFAULT]部分,配置my_ip 选项
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
替换为下面形式
[DEFAULT]
...
my_ip = 10.0.0.41
e.在 [DEFAULT] 部分,配置image服务的位置
[DEFAULT]
...
glance_host = controller
记得这里配置hosts,如果之前没有配置,则补上
#############################################
打开文件
sudo nano /etc/hosts
添加如下即可
#######################################################
f.为排除故障,启用verbose logging 在[DEFAULT] 部分
[DEFAULT]
...
verbose = True
############################
贴出配置文件如下
[DEFAULT]
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_confg = /etc/cinder/api-paste.ini
iscsi_helper = tgtadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
state_path = /var/lib/cinder
lock_path = /var/lock/cinder
volumes_dir = /var/lib/cinder/volumes
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
auth_strategy = keystone
my_ip = 10.0.0.41
glance_host = controller
verbose = True
[database]
connection = mysql://cinder:CINDER_DBPASS@controller/cinder
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = cinder
admin_password = CINDER_PASS
#########################################
完成安装
1.重启块存储volume 服务,包括它的依赖
service tgt restart
service cinder-volume restart
2.SQLite 如果存在,则移除
rm -f /var/lib/cinder/cinder.sqlite
验证安装
这里描述了怎样验证块存储服务创建volume,注意执行下面命令在
控制节点
1.环境变量生效
source admin-openrc.sh
内容如下
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v2.0
2.列出安装成功的服务组件
cinder service-list
3.生效demo 租户,作为一个非管理员租户执行下面步骤
source demo-openrc.sh
内容如下:
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v2.0
4.创建一个1 GB volume:
cinder create --display-name demo-volume6 1
5.验证volume有效性
cinder list
由于刚开始没有安装openstack包,所以导致前面创建错误,后来补上,问题得到解决
########################################################
6.出现错误:
问题1:openstack包未安装
cinder list
+--------------------------------------+----------+--------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+----------+--------------+------+-------------+----------+-------------+
| 9941d347-a589-453a-9136-c327659c7a5f | creating | demo-volume1 | 1 | None | false | |
+--------------------------------------+----------+--------------+------+-------------+----------+-------------+
查看日志:
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 和 库:
解决办法:
apt-get install ubuntu-cloud-keyring
echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \
"trusty-updates/juno main" > /etc/apt/sources.list.d/cloudarchive-juno.list
apt-get update && apt-get dist-upgrade
问题2:新增加硬盘未生效
在我们安装cinder的过程中:
官网地址
在执行到创建LVM 物理卷:
pvcreate /dev/sdb1
遇到下面错误
Device /dev/sdb1 not found (or ignored by filtering).
这是由于我们只是挂载了硬盘,但是并没有格式化使用。所以下面交给大家怎么使用起来
fdisk /dev/sdb1
#Type in the followings:
n
p
1
ENTER
ENTER
t
8e
w
对于上面的 /dev/sdb1是如何来的那。这里由于使用的是虚拟机,是通过虚拟机增加的第二块硬盘:如下图:
增加硬盘之后,我们通过
fdisk -l
命令,可以查看到
所以我们通过
下面命令,即可完成:
fdisk /dev/sdb1
#Type in the followings:
n
p
1
ENTER
ENTER
t
8e
w
更多信息参考:
openstack存储基础1:浅谈Linux磁盘存储管理
openstack存储基础2:Linux LVM硬盘管理及LVM扩容
路过
雷人
握手
鲜花
鸡蛋
收藏
分享
邀请
举报
全部
作者的其他最新日志
•
种用于单张图像大尺度人脸三维重建的VRN算法
•
基于 Openpose 实现人体动作识别
•
基于OpenCV使用OpenPose进行多个人体姿态估计
•
《DensePose: Dense Human Pose Estimation In The Wild》阅读笔记
•
Field types of query result and registered TableSink do not match
•
Clickhouse bug DB::Exception: PeekableReadBuffer: Memory limit exceed
发表评论
评论 (
2
个评论)
回复
445433045
2016-1-19 11:46
我想知道这个空设备/dev/sdb1是如何映射出来的?
回复
pig2
2016-1-19 21:12
445433045
: 我想知道这个空设备/dev/sdb1是如何映射出来的?
这是物理设备
涂鸦板
您需要登录后才可以评论
登录
|
立即注册
评论
pig2
加为好友
给我留言
打个招呼
发送消息
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈