美文网首页
openstack ceph

openstack ceph

作者: Joncc | 来源:发表于2019-10-14 10:20 被阅读0次

DevStack的安装

环境:

Ubuntu 16.04.2 LTS
ceph 10.2.9
openstack queens

1、环境准备

我使用的操作系统为Ubuntu 16.04的版本,默认的软件包源是国外的,速度相对来说比较慢,所以我们修改文件/etc/apt/sources.list,使用如下命令更改:

sed -i 's/us.archive.ubuntu.com/cn.archive.ubuntu.com/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/cn.archive.ubuntu.com/g' /etc/apt/sources.list

更新一下源。

apt-get update

2、下载devstack

安装devstack痛苦的其中一个原因,是OpenStack代码,都需要从github下载,这样由于网络的原因,经常导致各种错误,简直让人崩溃,各种错误,目前国内已经提供了完整的OpenStack的github的mirror:http://git.trystack.cn,这样Devstack成功概率会大大提高。

另外devstack还会下载image,下载的过程也是非常缓慢。trystack也提供大家常用的image下载:http://images.trystack.cn

目前官方github上面保留着三个稳定的版本,我们这边安装queens版。

mkdir -p /opt/stack/ && cd /opt/stack
apt-get install git
git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/queens

3、创建stack用户

目前Devstack脚本已经不支持直接使用root身份运行,你需要创建stack用户运行。

cd devstack/tools/
./create-stack-user.sh

修改devstack目录权限,让stack用户可以运行。

cd ../..
chown -R stack:stack /opt/stack

4、配置pip源

OpenStack很多组件需要从pip源下载,默认是国外的源,我们需要设置为国内的源,以便可以快速的进行配置,在root和stack的加目录下面都配置一下。

首先分别在家目录下面都创建.pip的目录,然后在目录下面创建文件pip.conf,内容如下:
su stack
mkdir .pip
cat >> .pip/pip.conf <<EOF
[global]
trusted-host =  pypi.douban.com
index-url = http://pypi.douban.com/simple
EOF

5、配置文件

cd devstack
cp samples/local.conf .

对文件local.conf进行简单修改,如下内容:

[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
LOGFILE=$DEST/logs/stack.sh.log
LOGDAYS=2
SWIFT_HASH=cb1db63e-fc54-4a9b-a7b1-311993bb4df8
SWIFT_REPLICAS=1
SWIFT_DATA_DIR=$DEST/data

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

6、安装

中途可能会出现多次错误,大部分都是因为网络的原因,重复运行命令即可。

./stack.sh
验证

经过长时间的等待之后,根据网络状态,大约1个小时的时间,出现下面的界面即可是安装完成。

=========================
DevStack Component Timing
 (times are in seconds)  
=========================
run_process           14
test_with_retry        2
apt-get-update        15
pip_install          112
osc                  127
wait_for_service      14
dbsync                15
apt-get               30
-------------------------
Unaccounted time     347
=========================
Total runtime        676



This is your host IP address: 10.33.1.50
This is your host IPv6 address: ::1
Horizon is now available at http://10.33.1.50/dashboard
Keystone is serving at http://10.33.1.50/identity/
The default users are: admin and demo
The password: secret

WARNING: 
Using lib/neutron-legacy is deprecated, and it will be removed in the future


Services are running under systemd unit files.
For more information see: 
https://docs.openstack.org/devstack/latest/systemd.html

DevStack Version: queens
Change: 72e80739bcdab307268f87fdd13502175d545369 Role apache-logs-conf: fix redhat matching 2019-04-09 23:46:36 +0200
OS Version: Ubuntu 16.04 xenial

然后我们进行登录查看。

image.png image.png

ceph端操作

1.1. 在ceph中创建池供openstack使用

ceph osd pool create openstack-pool 128 128 

1.2. ceph中创建相关的账号,并设置权限,openstack user用于访问openstack-pool

ceph auth get-or-create client.openstack mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=openstack-pool'

1.3. 同步ceph配置到openstack节点中(openstack将使用此配置访问ceph集群)

ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf

1.4. 同步keyring文件

将openstack user的keyring拷贝到cinder volume节点,并更改相应的权限.

ceph auth get-or-create client.openstack >> /etc/ceph/ceph.client.openstack.keyring
scp /etc/ceph/ceph.client.openstack.keyring root@{your-openstack-server}:/etc/ceph/

ssh {your-openstack-server} sudo chown cinder:cinder /etc/ceph/ceph.client.openstack.keyring (devstack环境中不需要设置用户组)

openstack端 认证

ceph节点
ceph auth get-key client.openstack >> /etc/ceph/client.openstack.key 
scp /etc/ceph/client.openstack.key root@{your-openstack-server}:/etc/ceph/

openstack 节点(这里uuid可以自己生成)
cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
 <uuid> 70cafbfb-3f5e-48c5-8acc-32858cb0814d</uuid>
 <usage type='ceph'>
 <name>client.openstack secret</name>
 </usage>
</secret>
EOF

sudo virsh secret-define --file secret.xml

sudo virsh secret-set-value --secret 70cafbfb-3f5e-48c5-8acc-32858cb0814d --base64 $(cat /etc/ceph/client.openstack.key) 

配置 Cinder

2.2 设置cinder.conf(/etc/cinder/cinder.conf)

cat cinder.conf

[DEFAULT]
...
enabled_backends = rbd2
...
[rbd2]
volume_driver = cinder.volume.drivers.rbd.RBDDriver
rados_connect_timeout = -1
rados_connection_interval = 5
rados_connection_retries = 3
rdb_ceph_conf = /etc/ceph/ceph.conf
rbd_cluster_name = ceph
rbd_flatten_volume_from_snapshot = True
rbd_max_clone_depth = 5
rbd_pool = openstack-pool
rbd_user = openstack
rbd_secret_uuid = 70cafbfb-3f5e-48c5-8acc-32858cb0814d
rbd_store_chunk_size = 4
volume_backend_name = rbd2

2.3 重启cinder服务,查看cinder list

[root@ubuntu1604-50~]# systemctl restart devstack@c-vol
[root@ubuntu1604-50~]# cinder-manage service list
DEBUG oslo_db.sqlalchemy.engines [None req-59a66dcb-e29a-455e-847d-61572006ce0e None None] MySQL server mode set to STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION {{(pid=17899) _check_effective_sql_mode /usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/engines.py:290}}
Binary           Host                                 Zone             Status     State Updated At           RPC Version  Object Version  Cluster                             
cinder-scheduler ubuntu1604-50                        nova             enabled    :-)   2019-10-11 01:56:12  3.10         1.35                                                
cinder-volume    ubuntu1604-50@lvmdriver-1            nova             enabled    :-)   2019-10-11 01:55:29  3.15         1.35                                                
cinder-volume    ubuntu1604-50@rbd2                   nova             enabled    :-)   2019-10-11 01:56:13  3.15         1.35                                                

验证

创建卷类型:


卷类型

创建一个卷,类型选上rbd2


可以看到,这个卷在ceph中。代表ceph rbd 对接cinder 成功

配置 NOVA

queens版
在 queens 版中, Ceph 块设备移到了 [libvirt] 段下。编辑所有计算节点上的 /etc/nova/nova.conf 文件,在 [libvirt] 段下添加:

[libvirt]
images_type = rbd
images_rbd_pool = openstack-pool
images_rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_user = openstack
# uuid前后一致
rbd_secret_uuid = 70cafbfb-3f5e-48c5-8acc-32858cb0814d
disk_cachemodes="network=writeback"
live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"
# 禁用文件注入
inject_password = false
inject_key = false
inject_partition = -2
# 虚拟机临时root磁盘discard功能,”unmap”参数在scsi接口类型磁盘释放后可立即释放空间
hw_disk_discard = unmap

重启nova
systemctl restart devstack@n-cpu

验证

创建RAW镜像

要在ceph中启动虚拟机,glance镜像格式必须为RAW。这里使用cirros镜像
从QCOW转换为RAW格式 :

find / -name cirros-0.3.5-x86_64-disk*
qemu-img convert -f qcow2 -O raw /opt/stack/devstack/files/cirros-0.3.5-x86_64-disk.img cirros.raw 

使用RAW镜像创建glance镜像 .

glance image-create --name cirros_raw_image  --disk-format=raw --container-format=bare < cirros.raw
You must provide a username via either --os-username or env[OS_USERNAME]

需要OpenStack RC,下载下来。拷贝到服务器

image.png

输入密码,创建RAW 镜像

[root@ubuntu1604-50~]# . admin-openrc.sh 
Please enter your OpenStack Password for project admin as user admin: 
[root@ubuntu1604-50~]# glance image-create --name cirros_raw_image  --disk-format=raw --container-format=bare < cirros.raw
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 4bda4108d1a74dd73a6ae6d0ba369916     |
| container_format | bare                                 |
| created_at       | 2019-10-11T02:43:28Z                 |
| disk_format      | raw                                  |
| id               | b77a6d3d-7c35-4d1d-8e68-45b230df1aa6 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | cirros_raw_image                     |
| owner            | 186ce9434c25464da9adf6f39ca43dba     |
| protected        | False                                |
| size             | 41126400                             |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2019-10-11T02:43:29Z                 |
| virtual_size     | None                                 |
| visibility       | shared                               |
+------------------+--------------------------------------+

查看raw镜像


创建可以引导的卷m2



以m2卷创建实例


image.png

相关文章

网友评论

      本文标题:openstack ceph

      本文链接:https://www.haomeiwen.com/subject/kcfapctx.html