# toyou_cinder_driver **Repository Path**: xover/toyou_cinder_driver ## Basic Information - **Project Name**: toyou_cinder_driver - **Description**: toyou_driver - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-09 - **Last Updated**: 2023-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [TOC] ## cinder驱动配置文件示例 ```python """ 在cinder-volume服务所在节点编辑文件: vim /etc/cinder/cinder.conf [DEFAULT] transport_url = rabbit://openstack:Cql123456@controller auth_strategy = keystone glance_api_servers = http://controller:9292 enabled_backends = tyds glance_api_version = 2 cinder_internal_tenant_project_id = 1e697e80da734822943094513325e4c9 cinder_internal_tenant_user_id = 6fd2486a8481468487a02cedba8aeab0 ''' [root@controller ~]# openstack project list +----------------------------------+-----------+ | ID | Name | +----------------------------------+-----------+ | 063e7e8172e841afb59e2d2868637d13 | service | | 1e697e80da734822943094513325e4c9 | admin | | d366285cf81e488c8b6316165acf0f6b | myproject | +----------------------------------+-----------+ [root@controller ~]# openstack user list +----------------------------------+-----------+ | ID | Name | +----------------------------------+-----------+ | 409a19c9215646649c3a466e8bc46161 | admin | | 23f3ea8d2c2749a89be6e83e1f1b8372 | myuser | | 72c5668b0edb4e74965da51e306da1b1 | glance | | 0754ad7daf864c3989bcab22e36d39c3 | placement | | 753ac15b2768469cb06a1c84fc48f1f6 | nova | | f0b32b90972a4837a9fdbfc101f19972 | neutron | | 6fd2486a8481468487a02cedba8aeab0 | cinder | +----------------------------------+-----------+ ''' [tyds] volume_driver = cinder.volume.drivers.toyou.tyds.TYDSDriver volume_backend_name = tyds tyds_pools = pool1, pool2 tyds_http_ip = 172.10.13.41 # 共工存储集群主节点ip tyds_http_user = superuser tyds_http_password = 123456 multiattach = True image_volume_cache_enabled = True [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = Cql123456 my_ip = 172.10.13.191 # cinder-volume服务所在节点的ip [oslo_concurrency] lock_path = /var/lib/cinder/tmp systemctl restart openstack-cinder-volume """ ``` ## openstack每个服务所在节点都需要的共工配置文件示例 ```python """ 检查共工存储集群上每个节点上的配置文件"/etc/tyds/tyds.conf"中的认证方式相关的三个变量"auth client required"、"auth cluster required"、"auth service required"是否均已由"tydsx"改为"none",如果不为"none",则改成"none"后需重启存储集群中的该节点。 在共工存储集群主节点执行(如果openstack服务所在节点没有/etc/tyds目录,则先创建): ssh {every-openstack-service-node} sudo tee /etc/tyds/tyds.conf < /etc/tyds/tyds.conf 在每个openstack服务所在节点查看/etc/tyds/tyds.conf文件内容:注意确认"tydsx"是否已经为"none" cat /etc/tyds/tyds.conf [global] fsid = dafae0e3-12a3-4982-8aa9-1d8fea558d50 mon initial members = node1,node2,node3 mon host = 172.10.3.221,172.10.3.222,172.10.3.223 public network = 172.10.3.0/24 cluster network = 172.10.3.0/24 auth client required = none auth cluster required = none auth service required = none leveldb block size = 65536 leveldb cache size = 536870912 leveldb compression = false leveldb write buffer size = 33554432 mds beacon grace = 20 mds cache memory limit = 2147483648 mds cache size = 500000 mds early reply = false mds enable op tracker = false mds reconnect timeout = 45 mon allow pool delete = true mon clock drift allowed = 3 mon clock drift warn backoff = 5 mon compact on start = true mon data avail crit = 3 mon data avail warn = 10 mon osd backfillfull ratio = 0.95 mon osd down out interval = 600 mon osd full ratio = 0.95 mon osd min down reporters = 1 mon osd min in ratio = 0.3 mon osd nearfull ratio = 0.93 mon pg warn max object skew = 1024 mon warn on legacy crush tunables = false ms bind port max = 8300 ms dispatch throttle bytes = 209715200 ms type = async+posix objecter inflight op bytes = 209715200 objecter inflight ops = 2048 osd agent max ops = 100 osd client message cap = 2048 osd client message size cap = 524288000 osd copyfrom max chunk = 8388608 osd crush chooseleaf type = 1 osd crush update on start = false osd deep scrub interval = 31536000 osd deep scrub stride = 524288 osd enable op tracker = false osd failsafe full ratio = 0.96 osd heartbeat grace = 20 osd heartbeat interval = 6 osd journal size = 10240 osd map cache size = 500 osd map message max = 10000 osd max backfills = 10 osd max pg log entries = 10000 osd max write size = 90 osd memory target = 4294967296 osd min pg log entries = 3000 osd mon heartbeat interval = 30 osd op log threshold = 5 osd op thread suicide timeout = 300 osd op thread timeout = 15 osd pool default crush rule = 0 osd pool default min size = 1 osd pool default pg num = 8 osd pool default pgp num = 8 osd pool default size = 3 osd pool erasure code stripe unit = 4096 osd recovery max active = 15 osd recovery max chunk = 8388608 osd recovery max single start = 5 osd recovery op priority = 10 osd scrub invalid stats = false osd scrub max interval = 31536000 osd scrub min interval = 31536000 rbd cache = true rbd cache max dirty = 83886080 rbd cache max dirty age = 10 rbd cache max dirty object = 0 rbd cache size = 134217728 rbd cache target dirty = 62914560 rbd cache writethrough until flush = false rgw max put size = 10737418240 rgw obj stripe size = 8388608 rgw thread pool size = 1000 client acl type = posix_acl mon max pg per osd = 8192 [mgr.node1] host = node1 [mgr.node2] host = node2 [mgr.node3] host = node3 """ ``` ## 内网yum源配置 ```python """ 先将yum源配置下的repo全部删除或备份到其他地方 然后编辑新的yum源文件 vi /etc/yum.repos.d/105.repo [base] name=CentOS-$releasever - Base baseurl=http://172.10.3.105/base/ gpgcheck=0 enabled=1 [extras] name=CentOS-$releasever - Extras baseurl=http://172.10.3.105/extras/ gpgcheck=0 enabled=1 [AppStream] name=CentOS-$releasever - AppStream baseurl=http://172.10.3.105/AppStream/ gpgcheck=0 enabled=1 [PowerTools] name=CentOS-$releasever - PowerTools baseurl=http://172.10.3.105/PowerTools/ gpgcheck=0 enabled=1 [centos-advanced-virtualization] name=CentOS-$releasever - centos-advanced-virtualization baseurl=http://172.10.3.105/centos-advanced-virtualization/ gpgcheck=0 enabled=1 [centos-ceph-nautilus] name=CentOS-$releasever - centos-ceph-nautilus baseurl=http://172.10.3.105/centos-ceph-nautilus/ gpgcheck=0 enabled=1 [centos-nfv-openvswitch] name=CentOS-$releasever - centos-nfv-openvswitch baseurl=http://172.10.3.105/centos-nfv-openvswitch/ gpgcheck=0 enabled=1 [centos-openstack-ussuri] name=CentOS-$releasever - centos-openstack-ussuri baseurl=http://172.10.3.105/centos-openstack-ussuri/ gpgcheck=0 enabled=1 [centos-rabbitmq-38] name=CentOS-$releasever - centos-rabbitmq-38 baseurl=http://172.10.3.105/centos-rabbitmq-38/ gpgcheck=0 enabled=1 """ ``` ## 热迁移功能 ```python """ 分别在每个nova-compute服务所在节点编辑文件 vim /etc/nova/nova.conf [libvirt] live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED" vim /etc/libvirt/libvirtd.conf listen_tls = 0 listen_tcp = 1 tcp_port = "16509" listen_addr = "172.10.13.61" #根据自己nova-compute服务所在节点IP改写 auth_tcp = "none" vim /etc/sysconfig/libvirtd LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf LIBVIRTD_ARGS="--listen" systemctl mask libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket libvirtd-tls.socket libvirtd-tcp.socket systemctl restart libvirtd netstat -tunlp | grep libvirtd # 验证是否开启qemu的tcp端口 virsh -c qemu+tcp://compute1/system # 验证是否可以免密登录 """ ``` ## 冷迁移功能 ```python """ 分别在每个nova-compute服务所在节点执行以下操作: ls /var/lib/nova/.ssh || mkdir -p /var/lib/nova/.ssh chown nova:nova -R /var/lib/nova/.ssh/ cat << EOF > /var/lib/nova/.ssh/config Host * StrictHostKeyChecking no EOF chown nova:nova /var/lib/nova/.ssh/config su -s /bin/bash -c "ssh-keygen" nova ssh nova-compute2 tee /var/lib/nova/.ssh/authorized_keys < /var/lib/nova/.ssh/id_rsa.pub # 此为在nova-compute1上将nova-compute1上的公钥拷贝到nova-compute2上,在nova-compute2上进行对应操作 ssh nova-compute2 chown nova:nova /var/lib/nova/.ssh/authorized_keys # 此为在nova-compute1上修改nova-compute2上authorized_keys文件的属主,在nova-compute2上进行对应操作 usermod -s /bin/bash nova # 给nova进程用户分配shell登录 """ ``` ## cinder多挂载 ```python """ 参考url:https://docs.openstack.org/cinder/latest/admin/blockstorage-volume-multiattach.html 在nova-api服务所在节点将api版本限定从2.6改成2.0 vim /usr/lib/python3.6/site-packages/nova/api/openstack/common.py return api_version_request.is_supported(req, '2.0') systemctl restart openstack-nova-api.service cinder type-create multiattach cinder type-key multiattach set multiattach=" True" cinder create --name --volume-type openstack server add volume INSTANCE_ID VOLUME_ID openstack server add volume cirros2 volume2 """ ```