zoukankan      html  css  js  c++  java
  • openstack高可用集群21-高性能云硬盘与SSD云硬盘的实现

    本例子ceph N版本采用的是bluestore,而不是filestore.
    生产环境有ssd可以直接认到并自动创建ssd class, 修改前集群拓扑:
    # ceph osd tree
    ID  CLASS WEIGHT   TYPE NAME                      STATUS REWEIGHT PRI-AFF
    -40       58.21582 root hdd                                               
    -41       14.55396     rack shzjJ08-HDD                                   
    -4       14.55396         host shzj-computer-167                         
    32   hdd  7.27698             osd.32               down        0 1.00000
    33   hdd  7.27698             osd.33               down        0 1.00000
    -58       14.55396     rack shzjJ09-HDD                                   
    -10       14.55396         host shzj-computer-168                         
    34   hdd  7.27698             osd.34                 up  1.00000 1.00000
    35   hdd  7.27698             osd.35                 up  1.00000 1.00000
    -61       14.55396     rack shzjJ10-HDD                                   
    -16       14.55396         host shzj-computer-169                         
    36   hdd  7.27698             osd.36                 up  1.00000 1.00000
    37   hdd  7.27698             osd.37                 up  1.00000 1.00000
    -64       14.55396     rack shzjJ11-HDD                                   
    -24       14.55396         host shzj-computer-170                         
    38   hdd  7.27698             osd.38                 up  1.00000 1.00000
    39   hdd  7.27698             osd.39                 up  1.00000 1.00000
    -1       29.07599 root ssd                                               
    -19        7.26900     rack shzjJ08                                       
    -7        3.63399         host shzj-computer-159                         
      2   ssd  0.90900             osd.2                  up  1.00000 1.00000
      5   ssd  0.90900             osd.5                  up  1.00000 1.00000
      8   ssd  0.90900             osd.8                  up  1.00000 1.00000
    30   ssd  0.90900             osd.30                 up  1.00000 1.00000
    -11        3.63399         host shzj-computer-163                         
    10   ssd  0.90900             osd.10                 up  1.00000 1.00000
    12   ssd  0.90900             osd.12                 up  1.00000 1.00000
    22   ssd  0.90900             osd.22                 up  1.00000 1.00000
    23   ssd  0.90900             osd.23                 up  1.00000 1.00000
    -20        7.26900     rack shzjJ09                                       
    -9        3.63399         host shzj-computer-160                         
      9   ssd  0.90900             osd.9                  up  1.00000 1.00000
    20   ssd  0.90900             osd.20                 up  1.00000 1.00000
    21   ssd  0.90900             osd.21                 up  1.00000 1.00000
    31   ssd  0.90900             osd.31                 up  1.00000 1.00000
    -13        3.63399         host shzj-computer-164                         
      3   ssd  0.90900             osd.3                  up  1.00000 1.00000
    24   ssd  0.90900             osd.24                 up  1.00000 1.00000
    25   ssd  0.90900             osd.25                 up  1.00000 1.00000
    29   ssd  0.90900             osd.29                 up  1.00000 1.00000
    -21        7.26900     rack shzjJ10                                       
    -3        3.63399         host shzj-computer-161                         
      0   ssd  0.90900             osd.0                  up  1.00000 1.00000
      4   ssd  0.90900             osd.4                  up  1.00000 1.00000
    16   ssd  0.90900             osd.16                 up  1.00000 1.00000
    19   ssd  0.90900             osd.19                 up  1.00000 1.00000
    -15        3.63399         host shzj-computer-165                         
      6   ssd  0.90900             osd.6                  up  1.00000 1.00000
    14   ssd  0.90900             osd.14                 up  1.00000 1.00000
    26   ssd  0.90900             osd.26                 up  1.00000 1.00000
    27   ssd  0.90900             osd.27                 up  1.00000 1.00000
    -22        7.26900     rack shzjJ12                                       
    -5        3.63399         host shzj-computer-162                         
      1   ssd  0.90900             osd.1                  up  1.00000 1.00000
      7   ssd  0.90900             osd.7                  up  1.00000 1.00000
    17   ssd  0.90900             osd.17                 up  1.00000 1.00000
    18   ssd  0.90900             osd.18                 up  1.00000 1.00000
    -17        3.63399         host shzj-computer-166                         
    11   ssd  0.90900             osd.11                 up  1.00000 1.00000
    13   ssd  0.90900             osd.13                 up  1.00000 1.00000
    15   ssd  0.90900             osd.15                 up  1.00000 1.00000
    28   ssd  0.90900             osd.28                 up  1.00000 1.00000
     
    查看class类型, 已经有2个class
    # ceph osd crush class ls
    [
        "ssd",
        "hdd"
    ]
    查看ssd规则,已经创建完成了2个rule
    # ceph osd crush rule ls
    ssd_rule
    hdd_rule
    # ceph osd crush rule dump ssd_rule
    {
        "rule_id": 0,
        "rule_name": "ssd_rule",
        "ruleset": 0,
        "type": 1,
        "min_size": 1,
        "max_size": 10,
        "steps": [
            {
                "op": "take",
                "item": -1,
                "item_name": "ssd"
            },
            {
                "op": "chooseleaf_firstn",
                "num": 0,
                "type": "rack"
            },
            {
                "op": "emit"
            }
        ]
    }
    # ceph osd crush rule dump hdd_rule
    {
        "rule_id": 1,
        "rule_name": "hdd_rule",
        "ruleset": 1,
        "type": 1,
        "min_size": 1,
        "max_size": 10,
        "steps": [
            {
                "op": "take",
                "item": -40,
                "item_name": "hdd"
            },
            {
                "op": "chooseleaf_firstn",
                "num": 0,
                "type": "rack"
            },
            {
                "op": "emit"
            }
        ]
    }
     
    ------------------------------------------------------------------------------
    如果没有ssd的规则,我们可以创建,命令如下
    #ceph osd crush rule create-replicated ssd_rule ssd rack
     
    命令的含义如下
    ceph osd crush rule create-replicated <name> <root> <type> {<class>}                        create crush rule <name> for replicated pool to start from <root>, replicate across buckets of type <type>, use devices of type <class> (ssd or hdd)
     
    ----------------------------------------------------------------------------------
    创建一个使用该rule-ssd规则的存储池:
    #ceph osd pool create ssd_volumes 64 64 ssd_rule
    查看pool
    # ceph osd pool ls detail | grep ssdpool
    pool 4 'ssd_volumes' replicated size 3 min_size 1 crush_rule 0 object_hash rjenkins pg_num 64 pgp_num 64 autoscale_mode warn last_change 273444 flags hashpspool stripe_width 0
     
    查看clinet.cinder权限
    # ceph auth list
    .
    .
    .
    client.cinder
            key: AQBnqfpetDPmMhAAiQ/vcxeVUExcAK51kGYhpA==
            caps: [mon] allow r
            caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images
    client.glance
            key: AQBSqfpezszOHRaAyAQq0UIY+9x2b88q3UCLtQ==
            caps: [mon] allow r
            caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=images
    .
    .
    .
     
    更新client.cinder权限
    # ceph auth caps client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children,allow rwx pool=ssd_volumes,allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'
    查看认证账号
    # ceph auth list
    .
    .
    .
    client.cinder
            key: AQBnqfpetDPmMhAAiQ/vcxeVUExcAK51kGYhpA==
            caps: [mon] allow r
            caps: [osd] allow class-read object_prefix rbd_children,allow rwx pool=ssd_volumes,allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images
    client.glance
            key: AQBSqfpezszOHRaAyAQq0UIY+9x2b88q3UCLtQ==
            caps: [mon] allow r
            caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=images
    .
    .
    .
     
    修改openstack cinder-volume增加配置,并创建volume
    在/etc/cinder/cinder.conf添加以下内容,调用ceph2个pool,一个hdd,一个ssd
    [DEFAULT]
    enabled_backends = ceph,ssd
    [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 = 5
    rbd_user = cinder
    rbd_secret_uuid = 2b706e33-609e-4542-9cc5-2b01703a292f
    volume_backend_name = ceph
    report_discard_supported = True
    image_upload_use_cinder_backend = True
    [ssd]
    volume_driver = cinder.volume.drivers.rbd.RBDDriver
    rbd_pool = ssd_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 = 5
    rbd_user = cinder
    rbd_secret_uuid = 2b706e33-609e-4542-9cc5-2b01703a292f
    volume_backend_name = ssd
    report_discard_supported = True
    image_upload_use_cinder_backend = True
    [oslo_middleware]
    重启cinder-volume服务
    systemctl restart openstack-cinder-volume.service
    查看cinder的pool (Show pool information for backends)
    # cinder get-pools
    +----------+-------------------------------+
    | Property | Value                         |
    +----------+-------------------------------+
    | name     | shzj-controller-153@ceph#ceph |
    +----------+-------------------------------+
    +----------+-------------------------------+
    | Property | Value                         |
    +----------+-------------------------------+
    | name     | shzj-controller-151@ceph#ceph |
    +----------+-------------------------------+
    +----------+-----------------------------+
    | Property | Value                       |
    +----------+-----------------------------+
    | name     | shzj-controller-153@ssd#ssd |
    +----------+-----------------------------+
    +----------+-------------------------------+
    | Property | Value                         |
    +----------+-------------------------------+
    | name     | shzj-controller-152@ceph#ceph |
    +----------+-------------------------------+
    创建新的cinder-type
    cinder type-create ssd
    cinder type-key ssd set volume_backend_name=ssd
    查询cinder-volume 是否启动成功
    # openstack volume service list
    +------------------+--------------------------+------+---------+-------+----------------------------+
    | Binary           | Host                     | Zone | Status  | State | Updated At                 |
    +------------------+--------------------------+------+---------+-------+----------------------------+
    | cinder-scheduler | shzj-controller-151      | nova | enabled | up    | 2021-03-18T05:48:30.000000 |
    | cinder-volume    | shzj-controller-151@ceph | nova | enabled | up    | 2021-03-18T05:48:37.000000 |
    | cinder-volume    | shzj-controller-152@ceph | nova | enabled | up    | 2021-03-18T05:48:31.000000 |
    | cinder-scheduler | shzj-controller-152      | nova | enabled | up    | 2021-03-18T05:48:28.000000 |
    | cinder-scheduler | shzj-controller-153      | nova | enabled | up    | 2021-03-18T05:48:29.000000 |
    | cinder-volume    | shzj-controller-153@ceph | nova | enabled | up    | 2021-03-18T05:48:33.000000 |
    | cinder-volume    | shzj-controller-153@ssd  | nova | enabled | up    | 2021-03-18T05:48:28.000000 |
    +------------------+--------------------------+------+---------+-------+----------------------------+
    创建volume
    # openstack volume create --type ssd --size 1 disk20191026
    +---------------------+--------------------------------------+
    | Field               | Value                                |
    +---------------------+--------------------------------------+
    | attachments         | []                                   |
    | availability_zone   | nova                                 |
    | bootable            | false                                |
    | consistencygroup_id | None                                 |
    | created_at          | 2021-03-18T05:49:22.000000           |
    | description         | None                                 |
    | encrypted           | False                                |
    | id                  | 7bc67df9-d9de-4f55-8284-c7f01cfb4dda |
    | migration_status    | None                                 |
    | multiattach         | False                                |
    | name                | disk20210318                         |
    | properties          |                                      |
    | replication_status  | None                                 |
    | size                | 1                                    |
    | snapshot_id         | None                                 |
    | source_volid        | None                                 |
    | status              | creating                             |
    | type                | ssd                                  |
    | updated_at          | None                                 |
    | user_id             | 380d6b7f829e4c8ab46704cc15222a2d     |
    +---------------------+--------------------------------------+
    # openstack volume list | grep disk20210318
    | 7bc67df9-d9de-4f55-8284-c7f01cfb4dda | disk20210318                        | available |    1 |
    在ceph检查volume是否在ssd_volumes创建的
    # rbd -p ssd_volumes ls
    volume-7bc67df9-d9de-4f55-8284-c7f01cfb4dda
    # rbd info ssd_volumes/volume-7bc67df9-d9de-4f55-8284-c7f01cfb4dda
    rbd image 'volume-7bc67df9-d9de-4f55-8284-c7f01cfb4dda':
            size 1 GiB in 256 objects
            order 22 (4 MiB objects)
            snapshot_count: 0
            id: 7485e2ba3dac9b
            block_name_prefix: rbd_data.7485e2ba3dac9b
            format: 2
            features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
            op_features:
            flags:
            create_timestamp: Thu Mar 18 13:49:24 2021
            access_timestamp: Thu Mar 18 13:49:24 2021
            modify_timestamp: Thu Mar 18 13:49:24 2021
    以上编号UID对应的
     
    最后我们可以给类型改个高大上点的名字
    # cinder type-update --name "SSD云硬盘" 724b73de-83a9-4186-b98c-034167a88a18
    # cinder type-list
    +--------------------------------------+--------------+-------------+-----------+
    | ID                                   | Name         | Description | Is_Public |
    +--------------------------------------+--------------+-------------+-----------+
    | 724b73de-83a9-4186-b98c-034167a88a18 | SSD云硬盘    | -           | True      |
    | ba44284f-5e23-4a6c-8cc2-f972941e46b5 | 高性能云硬盘 | -           | True      |
    +--------------------------------------+--------------+-------------+-----------+
     
     
    作者:Dexter_Wang   工作岗位:某互联网公司资深云计算与存储工程师  联系邮箱:993852246@qq.com
  • 相关阅读:
    MOSS 2010 修改管理员密码 欧阳锋
    MOSS2010 中“找不到位于xxxx的web应用程序”的解决办法 欧阳锋
    MSSQL 2008 无法修改表问题的解决 欧阳锋
    不是每个在你身上拉屎的都是你的敌人 欧阳锋
    笑一笑 欧阳锋
    隐藏MOSS2010 左边的导航 欧阳锋
    爱情与婚姻的区别 欧阳锋
    两年后,我们怎么办
    C#控件的闪烁问题解决方法总结
    Linux内核编译配置过程
  • 原文地址:https://www.cnblogs.com/dexter-wang/p/14592490.html
Copyright © 2011-2022 走看看