kolla-ansible安装cinder
LVM后端
环境拓扑

| 节点 | IP | 主机名 |
|---|---|---|
| Controller/Network/Apollo | 92.0.0.11 | anode |
| Compute/Storage | 92.0.0.12 | bnode |
multinode配置如下
[control]
92.0.0.11
[network]
92.0.0.11
[compute]
92.0.0.12
[monitoring]
92.0.0.11
[storage]
92.0.0.12
[apollo]
92.0.0.11
[extend]
92.0.0.10
Storage节点配置
新增磁盘(虚拟机直接添加磁盘、物理机使用losetup模拟),然后创建物理卷PV
# pvcreate /dev/sda
# pvdisplay
--- Physical volume ---
PV Name /dev/vda2
VG Name centos
PV Size 99.51 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 25474
Free PE 16
Allocated PE 25458
PV UUID riLhOd-VTF3-soV7-2mqC-Epk9-zAM6-zQZHqg
--- Physical volume ---
PV Name /dev/sda
VG Name cinder-volumes
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID qs5MVX-c567-Kl7w-59uQ-1f7l-ufxv-mOBy8n
在新创建的物理卷上创建cinder-volume卷组
# vgcreate cinder-volumes /dev/sda
# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 99.51 GiB
PE Size 4.00 MiB
Total PE 25474
Alloc PE / Size 25458 / 99.45 GiB
Free PE / Size 16 / 64.00 MiB
VG UUID neZcsa-uyAa-Qh1U-0RST-vMKw-fizT-9mhdlC
--- Volume group ---
VG Name cinder-volumes
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 20
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 10.00 GiB
PE Size 4.00 MiB
Total PE 2559
Alloc PE / Size 0 / 0
Free PE / Size 2559 / 10.00 GiB
VG UUID nVNcsk-SU7J-vmfo-4blS-HiHS-mdeU-22ukmP
Kolla-ansible配置
设置配置文件
# vim /etc/kolla/globals.yml
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
部署
# kolla-ansible -i multinode bootstrap-servers
# kolla-ansible -i multinode deploy
流程
### 创建卷流程
- cinder-volume服务使用"sudo cinder-rootwrap /etc/cinder/rootwrap.conf env LC_ALL=C lvcreate -n volume-03753745-933c-4f53-9e36-e90f13963aa5 cinder-volumes -L 1g"命令在cinder-volumes卷组上创建一个逻辑卷LV
### 卷挂载流程
- cinder-volume服务首先创建卷的iscsi target配置文件"/var/lib/cinder/volumes/volume-03753745-933c-4f53-9e36-e90f13963aa5",文件内如如下:
<target iqn.2010-10.org.openstack:volume-03753745-933c-4f53-9e36-e90f13963aa5>
backing-store /dev/cinder-volumes/volume-03753745-933c-4f53-9e36-e90f13963aa5
driver iscsi
incominguser VbUHhzgSqYxDEdo8rtU5 hxsbZiw3HaSWc55h
write-cache on
</target>
- 然后cinder-volume服务使用"sudo cinder-rootwrap /etc/cinder/rootwrap.conf tgt-admin --update iqn.2010-10.org.openstack:volume-03753745-933c-4f53-9e36-e90f13963aa5"命令创建iscsi target(服务端配置完成)
- 首先nova-libvirt服务使用iscsi客户端命令"iscsiadm -m node -T iqn.2010-10.org.openstack:volume-03753745-933c-4f53-9e36-e90f13963aa5 -p 92.0.0.12:3260 --interface default --op new"创建iscsi node(连接目标)
- 然后使用如下命令设置连接验证
- "iscsiadm -m node -T iqn.2010-10.org.openstack:volume-03753745-933c-4f53-9e36-e90f13963aa5 -p 92.0.0.12:3260 --op update -n node.session.auth.authmethod -v CHAP"
- "iscsiadm -m node -T iqn.2010-10.org.openstack:volume-03753745-933c-4f53-9e36-e90f13963aa5 -p 92.0.0.12:3260 --op update -n node.session.auth.username -v VbUHhzgSqYxDEdo8rtU5"
- "iscsiadm -m node -T iqn.2010-10.org.openstack:volume-03753745-933c-4f53-9e36-e90f13963aa5 -p 92.0.0.12:3260 --op update -n node.session.auth.password -v ***"
- 接着使用"iscsiadm -m node -T iqn.2010-10.org.openstack:volume-03753745-933c-4f53-9e36-e90f13963aa5 -p 92.0.0.12:3260 --login"命令连接iscsi target(客户端配置完成)
- 最后生成"attach device xml",然后使用virsh命令添加磁盘,xml文件内容如下:
<disk type="block" device="disk">
<driver name="qemu" type="raw" cache="none" io="native"/>
<source dev="/dev/disk/by-path/ip-92.0.0.12:3260-iscsi-iqn.2010-10.org.openstack:volume-03753745-933c-4f53-9e36-e90f13963aa5-lun-1"/>
<target bus="virtio" dev="vdb"/>
<serial>03753745-933c-4f53-9e36-e90f13963aa5</serial>
</disk>
问题处理
- 卷挂载失败
### nova-compute.log日志报错
2018-02-10 20:37:26.158 5 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/os_brick/initiator/connectors/iscsi.py", line 405, in connect_volume
2018-02-10 20:37:26.158 5 ERROR oslo_messaging.rpc.server connection_properties)
2018-02-10 20:37:26.158 5 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/os_brick/initiator/connectors/iscsi.py", line 236, in _get_potential_volume_paths
2018-02-10 20:37:26.158 5 ERROR oslo_messaging.rpc.server raise exception.FailedISCSITargetPortalLogin(message=msg)
2018-02-10 20:37:26.158 5 ERROR oslo_messaging.rpc.server FailedISCSITargetPortalLogin: Could not login to any iSCSI portal.
进到nova_compute容器,执行iscsiadm -m discovery -t sendtargets -p 92.0.0.12命令无法发现目标,且发现iscsid容器服务异常,所以先验证下iscsi target服务是否有异常,停掉iscsid和nova_compute容器,然后在宿主机器上安装iscsi客户端
# yum install iscsi-initiator-utils.x86_64 -y
发现并连接iscsi target
# iscsiadm -m discovery -t sendtargets -p 92.0.0.12
# iscsiadm -m node -T iqn.2010-10.org.openstack:volume-17876f1f-d28d-4ecb-aa86-ec0b7545e20b -p 92.0.0.12 -l
发现是可以正常连接的,说明服务端不存在问题,然后我们来验证下客户端,首先启动iscsid容器,然后在容器中执行下面操作
# iscsiadm -m discovery -t sendtargets -p 92.0.0.12
# iscsiadm -m node -T iqn.2010-10.org.openstack:volume-17876f1f-d28d-4ecb-aa86-ec0b7545e20b -p 92.0.0.12 -l
发现也是没有问题的,我们再把nova_compute容器启动起来,然后在nova_compute容器中执行下面操作
# iscsiadm -m discovery -t sendtargets -p 92.0.0.12
会发现命令卡住,无显示结果,这个时候我们还没发断定是iscsid容器的问题,还是nova-compute容器的问题,所以先停掉iscsid容器,然后在宿主机上启动iscsid服务(放在前端运行,方便看日志输出),然后继续在nova_compute容器中执行下面命令
# iscsiadm -m discovery -t sendtargets -p 92.0.0.12
会发现iscsid服务发生异常,同时nova_compute容器中执行的命令再次卡住,这时候说明nova_compute容器存在问题,最后发现nova-compute容器的iscsi客户端很久没有更新,而iscsid容器的客户端是最新的,怀疑是版本问题导致的异常,更新nova-compute容器的iscsi客户端版本后异常得到解决
NFS后端
环境拓扑

| 节点 | IP | 主机名 |
|---|---|---|
| Controller/Network/Apollo | 92.0.0.11 | anode |
| Compute/Storage | 92.0.0.12 | bnode |
| NFS | 92.0.0.13 | cnode |
multinode配置如下
[control]
92.0.0.11
[network]
92.0.0.11
[compute]
92.0.0.12
[monitoring]
92.0.0.11
[storage]
92.0.0.12
[apollo]
92.0.0.11
[extend]
92.0.0.10
NFS节点配置
安装服务
# yum install nfs-utils -y
设置配置文件
### 注意不能使用root用户创建的目录,否则后面cinder-volume创建卷时会出现Permission denied
$ mkdir -p /home/kolla/nfs
# tee /etc/exports << EOF
/home/kolla/nfs 92.0.0.0/24(rw,sync,insecure,no_root_squash)
EOF
启动服务
# systemctl enable nfs
# systemctl start nfs
验证NFS系统
# showmount -e 92.0.0.13
Export list for 92.0.0.13:
/kolla_nfs 92.0.0.0/24
Kolla-ansible配置
设置配置文件
# mkdir -p /etc/kolla/config
# tee /etc/kolla/config/nfs_shares.j2 << EOF
92.0.0.13:/home/kolla/nfs
EOF
# vim /etc/kolla/globals.yml
enable_cinder: "yes"
enable_cinder_backend_nfs: "yes"
部署
# kolla-ansible -i multinode bootstrap-servers
# kolla-ansible -i multinode deploy
流程
### 挂载流程
- cinder-volume服务会在/var/lib/cinder下创建一个目录用来挂载
- 读取/etc/cinder/nfs_shares中的nfs服务器信息,然后使用"sudo cinder-rootwrap /etc/cinder/rootwrap.conf mount -t nfs -o vers=4,minorversion=1 92.0.0.13:/home/kolla/nfs /var/lib/cinder/mnt/dd5f51c5ed990be3eb68a9e9b6099eb4"命令将其挂载到上面的目录
### 创建卷流程
- 使用"sudo cinder-rootwrap /etc/cinder/rootwrap.conf truncate -s 1G /var/lib/cinder/mnt/dd5f51c5ed990be3eb68a9e9b6099eb4/volume-cd53f360-1a42-480d-a059-424ebeac6509"命令创建对应大小的文件
### 卷挂载流程
- nova-libvirt根据创建的卷文件生成"attach device xml",然后使用virsh命令添加磁盘,xml文件内容如下:
<disk type="file" device="disk">
<driver name="qemu" type="raw" cache="none" io="native"/>
<source file="/var/lib/nova/mnt/dd5f51c5ed990be3eb68a9e9b6099eb4/volume-cd53f360-1a42-480d-a059-424ebeac6509"/>
<target bus="virtio" dev="vdb"/>
<serial>cd53f360-1a42-480d-a059-424ebeac6509</serial>
</disk>
问题处理
- 卷创建失败
### cinder-volume.log日志报错
"/usr/bin/truncate: cannot open `/var/lib/cinder/mnt/dd5f51c5ed990be3eb68a9e9b6099eb4/volume-e3e2c8e1-66fa-4dda-a7a7-9c68514d596a' for writing: Permission denied\n"
查看下目录权限
# docker exec -it cinder_volume bash
$ ls -la /var/lib/cinder/mnt
total 0
drwxr-xr-x 3 cinder kolla 45 Mar 1 04:52 .
drwxrwsr-x 5 cinder kolla 109 Mar 1 05:06 ..
drwxr-xr-x 2 root root 56 Mar 1 05:04 dd5f51c5ed990be3eb68a9e9b6099eb4
### 发现目录是root权限,所以`truncate`命令会执行失败,这边产生的原因是我之前的nfs服务器的配置文件内容是:/kolla_nfs 92.0.0.0/24(rw,sync,no_root_squash),并且这个目录是使用root用户创建的,使用普通用户创建,然后修改配置文件,重启nfs服务,并修改cinder-volume对应的nfs_shares配置文件,并重启容器即可解决问题
ISCSI后端
目前仅支持Hitachi storage volume driver
参考资料
Kolla-Ansible文档
Volume drivers
kolla-ansible安装cinder的更多相关文章
- kolla all-in-one 安装
http://docs.openstack.org/developer/kolla/ 使用了Docker containers and Ansible playbooks 目前在Fedora/Ubun ...
- 初探ansible安装
一.ansible介绍常用的自动化运维工具 Puppet —基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱SaltStack —基于 Python 开发,采用 ...
- Ansible安装配置Nginx
一.思路 现在一台机器上编译安装好nginx.打包,然后在用ansible去下发 cd /etc/ansible 进入ansible配置文件目录 mkdir roles/{common,install ...
- Ansible安装配置及使用
一.Ansible特点 1.不需要安装客户端,通过sshd通信 2.基于模块工作,模块可以由任何序言开发 3.不仅支持命令行使用模块,也支持编写yaml格式的playbook 4.支持sudo 5.有 ...
- Ansible安装配置
Ansible工具的安装与配置 Ansible基于SSH,不需要在远程端安装任何软件,只需要在管理端安装ansible及其组件即可. Ansible使用前提是已配置ssh密钥免登陆. 一.安装组件: ...
- ansible安装二进制kubernetes-1.14.1
主机信息: 主机IP 主机名 角色 10.10.3.181 k8s-m1 kube-apiserver,kube-controller-manager,kube-scheduler,etcd 10. ...
- Ansible安装部署以及常用模块详解
一. Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...
- 内网环境使用ansible安装software 需要外网时,如何绑定代理呢
内网环境使用ansible安装software 需要外网时,如何绑定代理呢? 方法一: 在ansible 的脚本里,yum install 的地方,添加语句: environment: https_p ...
- Ansible 安装与配置(一)
公司大概有200多云主机需要进行管理,但是如果通过手工管理费时还累最终结果也容易出错,所以考虑通过自动化的方式来管理云主机,目前开源的自动化工具,大家用的比较多的有Ansible和Saltstack这 ...
- Ansible安装及OS规划
Ansible安装 1.以管理用户mtnsadmin连接服务器后下载安装包(-O表示将下载的文件存放到指定的文件夹下,同时重命名下载的文件) sudo wget -O /etc/yum.re ...
随机推荐
- Jackson的用法实例分析
这篇文章主要介绍了Jackson的用法实例分析,用于处理Java的json格式数据非常实用,需要的朋友可以参考下 通俗的来说,Jackson是一个 Java 用来处理 JSON 格式数据的类库,其性能 ...
- php 设置页面导航动态active类样式的添加
在用php制作项目中,一般都是把页头和页脚分离出来.页头导航在选中状态时会有一些样式,例如active等,当页面在首页时候,导航的首页也应该是active的样式,那么,怎么用php控制这些样式的添加和 ...
- POJ 2309 BST(二叉搜索树)
思路:除以2^k,找到商为奇数的位置,k为层数,有2^(k+1)-1个节点 这里直接用位运算,x & -x 就求出 2^k 了. #include<iostream> using ...
- css中单位px和em,rem的区别
PX:PX实际上就是像素,用PX设置字体大小时,比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破.这样 ...
- [转]Eclipse快捷键_01_常用快捷键汇总
(注:红色标出来的是经常使用到的快捷键,磨刀不误砍柴工啊...) 一.常用快捷键 Shift+Alt+L: 自动补全等号左边对象 .(用鼠标选中这一行,然后按组合键Shift+Alt+L,在弹出的对 ...
- Android中高效的显示图片之二——在非UI线程中处理图片
在“加载大图”文章中提到的BitmapFactory.decode*方法,如果源数据是在磁盘.网络或其它任何不是在内存中的位置,那么它都不应该在UI线程中执行.因为它的加载时间不可预测且依赖于一系列因 ...
- 2017人工智能元年,AI在喧嚣和质疑中一路走来
前百度首席科学家吴恩达说:就像100年前的电力.20年前的互联网一样,AI也会改变每一个产业! 有人说,现在就像1995年,那一年,第一家互联网公司--网景上市,一天之内大涨208%,互联网正式登上历 ...
- ACM学习历程—BZOJ2956 模积和(数论)
Description 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j<=m,i≠j. Input 第一行两个数n,m. Output 一个整数表 ...
- QE名词解释以及相关文章链接
百科: http://baike.baidu.com/link?url=ho-aUG2rZwgjx75rwFu5b3XoQnsuJMj9GrJEuaZxnakg19ofO13mrXCMi9_JZ_VY ...
- bzoj 5120 无限之环 & 洛谷 P4003 —— 费用流(多路增广SPFA)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5120 https://www.luogu.org/problemnew/show/P4003 ...