OpenStack安装(六)-Cinder模块

一、安装Cinder前的准备

1. 为Cinder创建数据库(在控制节点)

提示:以下操作在控制节点完成,为块存储服务创建数据库、服务认证和API端点

  1. 使用数据库客户端,以root用户连接到数据库中:mysql -u root -p
  2. 创建Cinder数据库:CREATE DATABASE cinder;
  3. 为Cinder用户授予数据库权限:
    GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
    GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';

2. 创建Cinder的身份认证证书

  1. 加载admin用户的客户端脚本:source admin-openrc.sh
  2. 创建cinder用户:openstack user create --password-prompt cinder
  3. 将admin角色添加给cinder用户:openstack role add --project service --user cinder admin
  4. 创建cinder的服务实体(volume和volumev2两个服务实体):
    openstack service create --name cinder --description "OpenStack Block Storage" volume
    openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
  5. 创建计算服务的API endpoint(volume和volumev2两个端点:
    openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volume
    openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volumev2

二、在控制节点上安装和配置Cinder

1. 安装Cinder

  1. 安装Cinder:apt-get install cinder-api cinder-scheduler python-cinderclient

2. 配置Cinder

编辑文件:/etc/cinder/cinder.conf
小助手:删除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile

  1. 修改[database]部分,配置数据库的连接:connection = mysql://cinder:CINDER_DBPASS@controller/cinder
    记得密码替换为自己设置密码,这是mysql的密码,并非cinder用户的密码

  2. 修改[DEFAULT]和[oslo_messaging_rabbit]两部分, 配置RabbitMQ消息队列的访问:

    rpc_backend = rabbit
    
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    
  3. 在[DEFAULT]和[keystone_authtoken]两部分,配置身份认证服务的访问:

    auth_strategy = keystone
    

    注意:修改[keystone_authtoken]部分要注释掉本部分其他的参数

    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    auth_plugin = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = cinder
    password = CINDER_PASS
    
  4. 修改[DEFAULT]部分的my_ip参数,配置控制节点的管理IP地址:

    my_ip = 10.0.0.11
    
  5. 修改[oslo_concurrency]部分,配置锁路径:

    lock_path = /var/lock/cinder
    
  6. 可选:在[DEFAULT]部分启用日志信息详细记录:

    verbose = True
    

3. 配置Cinder数据库

  1. 为块存储服务数据库添加数据:su -s /bin/sh -c "cinder-manage db_sync" cinder

4. 完成在控制节点上安装和配置Cinder

  1. 重启块存储服务Cinder:service cinder-scheduler restart service cinder-api restart
  2. 删除ubuntu默认创建的SQLite数据库:rm -f /var/lib/cinder/cinder.sqlite

三、在块存储节点上安装和配置Cinder

1. 配置块存储的操作系统环境

编辑文件:/etc/hosts

  1. 配置管理接口:IP地址:10.0.0.41和10.0.2.41

  2. 配置主机名:block1

  3. 将blcok主机的/etc/hosts内容同步到其他所有节点:``

  4. 为主机添加新的磁盘,并创建分区:fdisk /dev/sdb

  5. 安装LVM包:apt-get install lvm2

  6. 配置LVM的物理卷:pvcreate /dev/sdb1

  7. 创建LVM的卷组cinder-volumes:vgcreate cinder-volumes /dev/sdb1

  8. 配置LVM仅仅扫描含有cinder-volume的卷组,编辑/etc/lvm/lvm.conf:
    在devices部分,添加一个筛选器,仅仅允许/dev/sdb设备并拒绝所有其他设备:

    devices {
    ...
    filter = [ "a/sdb/", "r/.*/"]
    
  9. 检查过滤器是否起作用:vgs -vvvv

2. 安装Cinder(在block1节点上)

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

3. 配置Cinder

编辑Cinder的配置文件:/etc/cinder/cinder.conf
小助手:删除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile

  1. 在[database]部分,配置数据库访问:

    connection = mysql://cinder:CINDER_DBPASS@controller/cinder
    
  2. 在[DEFAULT]和[oslo_messaging_rabbit]两部分, 配置RabbitMQ消息队列的访问:

    rpc_backend = rabbit
    
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    
  3. 在[DEFAULT]和[keystone_authtoken]两部分,配置身份认证服务的访问:

    auth_strategy = keystone
    

    注意:修改[keystone_authtoken]部分要注释掉本部分其他的参数

    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    auth_plugin = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = cinder
    password = CINDER_PASS
    
  4. 修改[DEFAULT]部分的my_ip参数,配置块存储节点的管理IP地址:

    my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS(10.0.0.41)
    
  5. 在[lvm]部分,配置LVM驱动,卷组,iscsi的协议和helper:

    volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
    volume_group = cinder-volumes
    iscsi_protocol = iscsi
    iscsi_helper = tgtadm
    
  6. 在[DEFAULT]部分,启用LVM作为后端存储系统:

    enabled_backends = lvm
    
  7. 在[DEFAULT]部分,配置镜像服务运行的节点:

    glance_host = controller
    
  8. 在[oslo_concurrency]部分,配置锁路径:

    lock_path = /var/lock/cinder
    
  9. 可选:在[DEFAULT]部分启用日志信息详细记录:

    verbose = True
    

4. 完成安装和配置Cinder

  1. 重启块存储服务Cinder:service tgt restart service cinder-volume restart
  2. 删除ubuntu默认创建的SQLite数据库:rm -f /var/lib/cinder/cinder.sqlite

四、校验Cinder的安装

1. 校验Cinder的安装

提示:在控制节点上进行校验,尝试创建一个卷

  1. 在admin-openrc.sh和demo-openrc.sh两个脚本里添加块存储的客户端使用API v2.0:
    echo "export OS_VOLUME_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
  2. 加载admin客户端脚本:source admin-openrc.sh
  3. 检查块存储服务启动的服务组件:cinder service-list
    应该有两个服务:controller和block1@lvm
  4. 加载demo脚本:source demo-openrc.sh
  5. 创建1GB的一个卷:cinder create --name demo-volume1 1
  6. 创建卷是否创建成功,检查状态是否为可用,否则查看日志文件/var/log/cinder:cinder list

2. 将卷添加到实例中

  1. 查看现有的实例,注意查看实例名和确保实例状态是active:nova list
  2. 查看可用的卷,注意查看卷ID:nova volume-list
  3. 查看连接实例的VNC URL:nova get-vnc-console demo-instance1 novnc
  4. 在浏览器中连接实例
  5. 查看实例中的现有卷:sudo fdisk -l
  6. 将查看到的卷添加到实例中:nova volume-attach demo-instance1 158bea89-07db-4ac2-8115-66c0d6a4bb48
  7. 查看卷的状态,status应该是in-use:nova volume-list
  8. 在浏览器中连接实例
  9. 在实例中验证卷是否添加到实例中:sudo fdisk -l
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容