• 云计算/云存储---Ceph和Openstack的cinder模块对接方法


    1.创建存储池

     ceph节点中执行如下语句。

    #ceph osd pool create volumes 128

    2.配置 OPENSTACK 的 CEPH 客户端

    ceph节点两次执行如下语句,两次{your-openstack-server}分别填控制节点和计算节点IP。

    如果显示在控制节点和计算节点中没有ceph文件夹,则在两节点中创建对应文件夹。

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

    3.安装 CEPH 客户端软件包

      控制节点上进行librbd Python 绑定

    #yum install python-rbd

    计算节点和控制节点进行安装 Python 绑定和客户端命令行工具

    #yum install ceph-common
    
    #yum install ceph

    4.配置 CEPH 客户端认证

    ceph节点Cinder创建新用户

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

    ceph节点把 client.cinder的密钥环复制到控制节点,并更改所有权,{your-volume-server}和{your-cinder-volume-server}处填控制节点IP。

    #ceph auth get-or-create client.cinder | ssh {your-volume-server} sudo tee /etc/ceph/ceph.client.cinder.keyring
    
    #ssh {your-cinder-volume-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring 

    ceph节点执行如下语句{your-nova-compute-server}为计算节点IP。

    #ceph auth get-or-create client.cinder | ssh {your-nova-compute-server} sudo tee /etc/ceph/ceph.client.cinder.keyring

    ceph节点client.cinder用户的密钥存进libvirt。libvirt 进程从 Cinder 挂载块设备时要用它访问集群,在运行 nova-compute 的节点上创建一个密钥的临时副本。

    {your-compute-node}为计算节点IP。

    #ceph auth get-key client.cinder | ssh {your-compute-node} tee  /etc/ceph/client.cinder.key
     

    计算节点上执行如下语句,把密钥加进 libvirt 、然后删除临时副本。

    #uuidgen

    记录下产生的数字,将下面的UUIDGEN替换为该数字,并在计算节点执行下列语句

    cat > secret.xml <<EOF
    
    <secret ephemeral='no' private='no'>
    
      <uuid>UUIDGEN</uuid>
    
      <usage type='ceph'>
    
            <name>client.cinder secret</name>
    
      </usage>
    
    </secret>
    
    EOF
    #sudo virsh secret-define --file secret.xml
    
    #sudo virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml

    执行完后,记录好上面产生的uuidgen,下面还会用到。

    5.安装并配置控制节点

    5.1先决条件

    控制节点完成下面的步骤以创建数据库:

    用数据库连接客户端以 root 用户连接到数据库服务器:

    #mysql -u root -p

    创建cinde数据库

    #CREATE DATABASE cinder;

    配置 cinder 数据库的访问权限,下列CINDER_DBPASS用合适的密码替换。

    #GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' 
    
      IDENTIFIED BY 'CINDER_DBPASS';
    
    #GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' 
    
      IDENTIFIED BY 'CINDER_DBPASS';

    退出数据库。

    获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

    # . admin-openrc

    创建服务证书:

    创建一个 cinder 用户:

    #openstack user create --domain default --password-prompt cinder

    添加 admin 角色到 cinder 用户上。

    #openstack role add --project service --user cinder admin

    创建 cinder 和 cinderv2 服务实体:

    #openstack service create --name cinder 
    
      --description "OpenStack Block Storage" volume
    
    #openstack service create --name cinderv2 
    
      --description "OpenStack Block Storage" volumev2

    创建块设备存储服务的 API 入口点:

    #openstack endpoint create --region RegionOne 
    
      volume public http://controller:8776/v1/%(tenant_id)s
    
    #openstack endpoint create --region RegionOne 
    
      volume internal http://controller:8776/v1/%(tenant_id)s
    
    #openstack endpoint create --region RegionOne 
    
      volume admin http://controller:8776/v1/%(tenant_id)s
    
    #openstack endpoint create --region RegionOne 
    
      volumev2 public http://controller:8776/v2/%(tenant_id)s
    
    #openstack endpoint create --region RegionOne 
    
      volumev2 internal http://controller:8776/v2/%(tenant_id)s
    
    #openstack endpoint create --region RegionOne 
    
      volumev2 admin http://controller:8776/v2/%(tenant_id)s

    5.2安装并配置组件

    安装软件包

    # yum install openstack-cinder
    
    #yum install openstack-cinder targetcli python-keystone

    在控制节点上编辑cinder.conf。

    #vi /etc/cinder/cinder.conf

    添加如下内容:

    注意:
    1.如果你为 cinder 配置了多后端, [DEFAULT] 节中必须有 glance_api_version = 2

    2.[ceph]中的rbd_secret_uuid后面对应填的刚刚记录的uuid。

    [DEFAULT]
    
    transport_url = rabbit://openstack:RABBIT_PASS@controller
    
    auth_strategy = keystone
    
    my_ip = 控制节点管理网络的IP
    
    enabled_backends = ceph
    
    glance_api_servers = http://controller:9292
    
     
    
    [database]
    
    connection = mysql+pymysql://cinder:CINDER_PASS@controller/cinder
    
     
    
    [keystone_authtoken]
    
    auth_uri = http://controller:5000
    
    auth_url = http://controller:35357
    
    memcached_servers = controller:11211
    
    auth_type = password
    
    project_domain_name = default
    
    user_domain_name = default
    
    project_name = service
    
    username = cinder
    
    password = CINDER_PASS
    
     
    
    [oslo_concurrency]
    
    lock_path = /var/lib/cinder/tmp
     
    
    [ceph]
    
    volume_driver = cinder.volume.drivers.rbd.RBDDriver
    
    rbd_pool = volumes
    
    rbd_ceph_conf = /etc/ceph/ceph.conf
    
    rbd_flatten_volume_from_snapshot = false
    
    rbd_max_clone_depth = 5
    
    rbd_store_chunk_size = 4
    
    rados_connect_timeout = -1
    
    glance_api_version = 2
    
    rbd_user = cinder
    
    rbd_secret_uuid = a852df2b-55e1-4c1b-9fa2-61e77feaf30f

    编辑/etc/nova/nova.conf 添加如下内容:

    [cinder]
    
    os_region_name = RegionOne

    6.重启 OPENSTACK

    控制节点重启计算API 服务:

    # systemctl restart openstack-nova-api.service

    启动块设备存储服务,并将其配置为开机自启:

    # systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
    
    # systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

    启动块存储卷服务及其依赖的服务,并将其配置为随系统启动:

    # systemctl enable openstack-cinder-volume.service target.service
    
    # systemctl start openstack-cinder-volume.service target.service

    7.验证

    控制节点获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

    # . admin-openrc

    列出服务组件以验证是否每个进程都成功启动:

    # cinder service-list

    并且登录界面后可以创建卷

     

  • 相关阅读:
    linux 查看端口占用情况
    linux下python脚本的运行
    js 事件冒泡
    linux下设置path
    查看和修改Linux的时间
    逗号分割的字符串存储到临时表中
    Centos下搭建Web服务器
    如何让input和img水平对齐
    操作系统方面书籍推荐
    Linus的十大名言
  • 原文地址:https://www.cnblogs.com/yaohong/p/7711670.html
Copyright © 2020-2023  润新知