配置卷类型 本节主要介绍HBlock Cinder配置卷类型。 可以按照下列步骤进行卷类型配置。 1. 修改Cinder的配置文件/etc/cinder/cinder.conf,使用enabledbackends启用HBlock的卷,并且在配置文件中增加HBlock卷相关参数。 说明 一次可以在cinder.conf添加多个卷的类型。 单机版示例如下: plaintext [DEFAULT] enabledbackends lvmdriver1,stor1 [stor1] volumegroupstackvolumeslvmdriver2 volumedriverstordriver.driver.driverstor.StorDriver volumebackendname stor1 storprovider HBlock storapiuser storuser storapipassword storchapuser chapuser storchappassword storapiendpoint writepolicy WriteBack sectorsize 4096 maxsessions 2 storpath /mnt/stor flattenvolumefromsnapshotfalse maxclonedepth5 集群版示例如下: plaintext [DEFAULT] enabledbackends lvmdriver1,stor,stor1,stor2 [stor] volumegroupstackvolumeslvmdriver2 volumedriverstordriver.driver.driverstor.StorDriver volumebackendname stor storprovider HBlock storapiuser storuser storapipassword storchapuser chapuser storchappassword storapiendpoint storchapuser chapuser storchappassword storagemode Local localstorageclass EC 2+1 highavailability ActiveStandby writepolicy WriteBack sectorsize 512 ecfragmentsize 16 maxsessions 2 minreplica 2 flattenvolumefromsnapshotfalse maxclonedepth5 [stor1] volumegroupstackvolumeslvmdriver2 volumedriverstordriver.driver.driverstor.StorDriver volumebackendname stor1 storprovider HBlock storapiuser storuser storapipassword storchapuser chapuser storchappassword storapiendpoint storagemode Local localstorageclass singlecopy highavailability Disabled writepolicy WriteAround sectorsize 512 flattenvolumefromsnapshottrue maxclonedepth5 [stor2] volumegroupstackvolumeslvmdriver2 volumedriverstordriver.driver.driverstor.StorDriver volumebackendname stor2 storprovider HBlock storapiuser storuser storapipassword storchapuser chapuser storchappassword storapiendpoint storagemode Local localstorageclass 3copy highavailability ActiveStandby writepolicy WriteThrough sectorsize 4096 文件中的参数解释如下: 参数名称 参数说明 是否必须 enabledbackends 需要在系统生效的后端存储名称。 如果有多个需要生效的存储,名称之间用英文逗号隔开。 是 volumegroup 卷的组。 是 volumedriver HBlock驱动所在路径。 取值: 如果驱动作为独立Python包进行安装,取值为stordriver.driver.driverstor.StorDriver。 如果复制stordriver到Cinder驱动目录的方式安装驱动,取值为:cinder.volume.drivers.stordriver.driver.driverstor.StorDriver。 是 volumebackendname 卷对应的后端存储名称,存储节点的Volume Provider 命名。与enabledbackends定义的后端存储名字保持一致。 是 storprovider 产品名称。 取值:HBlock。 是 storapiuser HBlock的管理员用户名。 说明 HBlock初始化时,默认用户名为storuser。 是 storapipassword HBlock的管理员密码。 是 storagemode HBlock卷的模式。 取值: Local:本地模式,数据全部保留在本地。 Cache:缓存模式,本地保留部分热数据,全部数据异步存储到OOS中。 Storage:存储模式,本地保留全部数据,并异步存储到OOS中。 默认值为Local。 否 storchapuser CHAP验证用名称。 取值:字符串形式,长度范围是3~64,只能由字母、数字、句点( . )、短横线( )、下划线( )、冒号( : )组成,字母区分大小写,且仅支持以字母或数字开头。 否 storchappassword CHAP认证密码。 取值:字符串形式,长度范围是12~16,只能由字母、数字或下划线( )组成,字母区分大小写。 否 storapiendpoint 配置HBlock RESTful API地址和端口。 对于集群版HBlock,可以填写多对HBlock RESTful API地址和端口,以英文逗号隔开。 说明 安装HBlock时,默认API端口为1443。 是 storpath 指定HBlock存储卷数据的数据目录(仅单机版支持)。 说明 如果创建卷时不指定数据目录,使用服务器设置的默认数据目录。 否 servernumbers Target所在的服务器数量(仅集群版支持)。 整数形式,取值为[2, n],n为集群内服务器的数量。默认值为2。 否 faultdomains 卷的服务端连接位置信息。根据存储池的故障域,创建Target所在服务器的列表(仅集群版支持),以便创建LUN时,LUN关联的Target优先从该服务器列表中选择所在服务器。例如存储池为rack级别,其拓扑图涵盖rack1、rack2、rack3、rack4中的节点,且faultDomains指定rack1、rack2,那么创建LUN时,LUN关联的Target优先从rack1、rack2所包含的此存储池的服务器列表里进行选择。 注意 存储池的故障域为path级别时,不能设置该参数。 如果LUN指定了高速缓存池和最终存储池,则从高速缓存池池中选择节点列表。如果LUN只指定了最终存储池,则从最终存储池中选择节点列表。 取值:以节点的形式添加,节点的级别可以到room、rack、server。可以指定多个节点,但是节点的个数要小于等于serverNumbers。支持一个节点添加多次,但是每次只能选一个server,并且选择的server不能与前面重复。如果一个节点出现的次数过多导致节点内的全部server都被选择,则系统会忽略此节点,从后面的节点中继续选择。 否 pool 指定存储池(仅集群版支持),表示最终存储池,卷数据最终落在该存储池内。默认使用集群的基础存储池。 注意 已用该卷类型创建卷,禁止修改pool,否则将影响已创建的卷。如果需要修改pool,需要创建新的卷类型。 否 cachepool 指定缓存存储池(仅集群版支持)。如果指定了缓存存储池,卷数据首先写入缓存存储池,然后再存入存储池。 注意 存储池与缓存存储池不能是同一个存储池。 否 highavailability 选择卷的高可用类型(仅集群版支持): ActiveStandby:启用主备,该卷关联对应Target下的所有IQN。 Disabled:不启用主备,该卷关联对应Target下的1个IQN。 默认值为ActiveStandby。 否 localstorageclass 卷冗余模式(仅集群版支持)。 取值: singlecopy:单副本。 2copy:两副本。 3copy:三副本。 EC N+M:纠删码模式。其中N、M为正整数,N>M,且N+M≤128。表示将数据分割成N个片段,并生成M个校验数据。 默认值为EC 2+1。 否 minreplica 最小副本数(仅集群版支持)。 对于副本模式的卷,假设卷副本数为X,最小副本数为Y(Y必须≤X),该卷每次写入时,至少Y份数据写入成功,才视为本次写入成功。对于EC N+M模式的卷,假设该卷最小副本数设置为Y(必须满足N≤Y≤N+M),必须满足总和至少为Y的数据块和校验块写入成功,才视为本次写入成功。 取值:整数。对于副本卷,取值范围是[1, N],N为副本模式卷的副本数,默认值为1。对于EC卷,取值范围是[N, N+M],默认值为N。 否 redundancyoverlap 卷的折叠副本数(仅集群版支持)。在数据冗余模式下,同一份数据的不同副本/分片默认分布在不同的故障域,当故障域损坏时,允许根据卷的冗余折叠原则,将多份数据副本放在同一个故障域中,但是分布在不同的path上。 注意 如果存储池故障域级别为path,此参数不生效。 取值:对副本模式,取值范围是[1,副本数],默认值为1;对于EC模式,取值范围是[1,M+N],默认值为1。 否 ecfragmentsize 纠删码模式分片大小(仅集群版支持)。卷冗余模式为EC模式时,此设置才生效,否则忽略。 取值:1、2、4、8、16、32、64、128、256、512、1024、2048、4096,单位是KiB。默认值为16。 否 sectorsize 设置扇区大小。 取值:512、4096,单位是bytes。默认值为4096。 否 writepolicy 卷的写策略: WriteBack(wb):回写,指数据写入到内存后即返回客户端成功,之后再异步写入磁盘。适用于对性能要求较高,稳定性要求不高的场景。 WriteThrough(wt):透写,指数据同时写入内存和磁盘,并在都写成功后再返回客户端成功。适用于稳定性要求较高,写性能要求不高,且最近写入的数据会较快被读取的场景。 WriteAround(wa):绕写,指数据直接写到磁盘,不写入内存。适用于稳定性要求较高,性能要求不高,且写多读少的场景。 默认值为WriteBack(wb)。 否 maxsessions iSCSI Target允许建立的最大会话数。 取值:整数,取值范围是[1, 1024],默认值为1。 否 flattenvolumefromsnapshot 是否断开卷与快照的关系链: true:断开。 false:不断开。 默认值为false。 否 maxclonedepth 最大克隆卷深度,当超过设置的最大深度时,新创建的卷会自动执行断链。 取值:整数,取值范围是[0, 15],默认值为5。0表示不支持克隆卷。 否 cloudbucketname 已存在的OOS存储桶的名称。 注意 请勿开启Bucket的生命周期设定和合规保留。 上云卷必填 cloudprefix 设置OOS中的前缀名称,设置前缀名称后,卷数据会存在存储桶以前缀命名的类文件夹中。如果未指定前缀,则直接存储在以卷名称命名的类文件夹中。 取值:字符串形式,长度范围是1~256。 否 cloudaccesskey OOS AccessKeyID。 上云卷必填 cloudsecretkey OOS SecretAccessKey。 上云卷必填 cloudendpoint 设置OOS Endpoint。 上云卷必填 cloudobjectsize 数据存储在OOS中的大小。 取值:128、256、512、1024、2048、4096、8192,单位是KiB。默认值为1024。 否 cloudstorageclass 设置OOS的存储类型: STANDARD:标准存储。 STANDARDIA:低频访问存储。 默认为STANDARD。 否 cloudcompression 是否压缩数据上传至OOS: Enabled(on):压缩数据上传至OOS。 Disabled(off):不压缩数据上传至OOS。 默认值为Enabled(on)。 否 cloudsignversion 指定上云签名认证的类型: v2:V2签名认证。 v4:V4签名认证。 默认值为v2。 否 cloudregion 表示Endpoint资源池所在区域。 V4签名时,此项必填。 条件 deleteclouddata 删除卷时,是否删除云上的数据: true:删除云上数据。 false:不删除云上数据。 默认值为true。 否 2. 使用下列命令,使用配置生效: plaintext cinder typecreate volumebackendname cinder typekey volumebackendname set volumebackendnamevolumebackendname 示例1:使步骤1中单机版配置生效 plaintext cinder typecreate stor1 cinder typekey stor1 set volumebackendnamestor1 示例2:使步骤1中配置的集群版配置生效 plaintext cinder typecreate stor cinder typekey stor set volumebackendnamestor cinder typecreate stor1 cinder typekey stor1 set volumebackendnamestor1 cinder typecreate stor2 cinder typekey stor2 set volumebackendnamestor2 3. 重启Cinder服务 如果使用DevStack方式安装OpenStack,重启Cinder服务命令如下: plaintext systemctl restart devstack@c 如果使用Packstack安装OpenStack,重启Cinder服务命令如下: plaintext systemctl restart openstackcinder 4. 配置Multipath(集群版) 1)参考客户端配置章节中的“配置 MPIO”,确保MPIO正确配置。 2)启用Nova的multipath功能(如果是多节点部署,需要到对应的计算节点修改配置):如果使用DevStack方式安装OpenStack,修改/etc/novacpu.conf;如果使用Packstack安装OpenStack,修改/etc/nova/nova.conf。 plaintext [libvirt] iscsiusemultipath true 5. 重启Nova服务(集群版) 如果使用DevStack方式安装OpenStack,重启Nova服务命令如下: plaintext systemctl restart devstack@n 如果使用Packstack安装OpenStack,重启Nova服务命令如下: plaintext systemctl restart openstacknova 说明 如果是多节点部署,需要到对应的计算节点重启Nova服务。 6. 验证卷是否配置正确 plaintext cinder typelist cinder typeshow ID