本地卷
- 单机版
./stor lun add { -n | --name } LUN_NAME { -p | --capacity } CAPACITY { -t | --target } TARGET_NAME [ { -o | --sector-size } SECTOR_SIZE ] [ { -w | --write-policy } WRITE_POLICY ] [ { -P | --path } PATH ] [ { { -m | --mode } STORAGE_MODE ] - 集群版
./stor lun add { -n | --name } LUN_NAME { -p | --capacity } CAPACITY { -t | --target } TARGET_NAME [ --pool POOL ] [ --cache-pool CACHE_POOL ] [ { -a | --ha } HIGH_AVAILABILITY ] [ { -c | --local-storage-class } LOCAL_STORAGE_CLASS ] [ --min-replica MIN_REPLICA ] [ --ec-fragment-size EC_FRAGEMENT_SIZE ] [ { -o | --sector-size } SECTOR_SIZE ] [ { -w | --write-policy } WRITE_POLICY ] [ { -m | --mode } STORAGE_MODE ]
上云卷
- 单机版
./stor lun add { -n | --name } LUN_NAME { -p | --capacity } CAPACITY { -t | --target } TARGET_NAME [ { -o | --sector-size } SECTOR_SIZE ] [ { -w | --write-policy } WRITE_POLICY ] [ { -P | --path } PATH ] { -m | --mode } STORAGE_MODE { -B | --bucket } BUCKET_NAME { -A | --ak } ACCESS_KEY { -S | --sk } SECRET_KEY [ { -C | --cloud-storage-class } CLOUD_STORAGE_CLASS ] { -E | --endpoint } ENDPOINT [ --sign-version VERSION ] [ --region REGION ] [ { -M | --cloud-compression } CLOUD_COMPRESSION ] [ { -O | --object-size } OBJECT_SIZE ] [ { -X | --prefix } PREFIX ] - 集群版
./stor lun add { -n | --name } LUN_NAME { -p | --capacity } CAPACITY { -t | --target } TARGET_NAME [ --pool POOL ] [ --cache-pool CACHE_POOL ] [ { -a | --ha } HIGH_AVAILABILITY ] [ { -c | --local-storage-class } LOCAL_STORAGE_CLASS ] [ --min-replica MIN_REPLICA ] [ --ec-fragment-size EC_FRAGEMENT_SIZE ] [ { -o | --sector-size } SECTOR_SIZE ] [ { -w | --write-policy } WRITE_POLICY ] { -m | --mode } STORAGE_MODE { -B | --bucket } BUCKET_NAME { -A | --ak } ACCESS_KEY { -S | --sk } SECRET_KEY [ { -C | --cloud-storage-class } CLOUD_STORAGE_CLASS ] { -E | --endpoint } ENDPOINT [ --sign-version VERSION ] [ --region REGION ] [ { -M | --cloud-compression } CLOUD_COMPRESSION ] [ { -O | --object-size } OBJECT_SIZE ] [ { -X | --prefix } PREFIX ]
此命令用来创建卷。
说明
HBlock上Target IQN的数量最多32766个。一个Target最多可以关联256个卷,但是一个卷只能被一个Target关联。
卷创建成功后,仅下列参数可以修改:卷容量、写策略、最小副本数(仅集群版支持)、Endpoint、上云签名认证版本、区域、AK/SK、是否压缩数据。
参数
参数 描述 -n LUN_NAME 或 --name LUN_NAME 设置卷名称。
取值:字符串形式,长度范围是1~16,只能由字母、数字和短横线(-)组成,字母区分大小写,且仅支持以字母或数字开头。
-p CAPACITY 或 --capacity CAPACITY 设置卷容量。
取值:整数形式,数字后面可以输入单位简写G/g、T/t或P/p,分别代表GiB、TiB、PiB,如果不输入,默认为GiB。
如果单位是GiB,取值为[1, 1048576]。
如果单位是TiB,取值为[1, 1024]。
如果单位是PiB,取值为1。
-t TARGET_NAME 或 --target TARGET_NAME 指定iSCSI Target名称。
取值:字符串形式,长度范围1~16,只能由小写字母、数字、句点(.)和短横线(-)组成,且仅支持以字母或数字开头。
说明创建卷时,如果指定的iSCSI Target名称不存在,那么同时创建iSCSI Target。
--pool POOL 指定存储池(仅集群版支持),表示最终存储池,卷数据最终落在该存储池内。默认使用集群的基础存储池。 --cache-pool CACHE_POOL 指定缓存存储池(仅集群版支持)。如果指定了缓存存储池,卷数据首先写入缓存存储池,然后再存入存储池。
注意存储池与缓存存储池不能是同一个存储池。
-a HIGH_AVAILABILITY 或 --ha HIGH_AVAILABILITY
选择卷的高可用类型(仅集群版支持):
取值:
ActiveStandby(as):启用主备,该卷关联对应Target下的所有IQN。
Disabled(off):不启用主备,该卷关联对应Target下的1个IQN。客户端连接该类型的卷的方法可以参见Windows 客户端–单机版、Linux 客户端 – 单机版。
默认值为ActiveStandby(as)。
-c LOCAL_STORAGE_CLASS 或 --local-storage-class LOCAL_STORAGE_CLASS 卷冗余模式(仅集群版支持)。
取值:
single-copy:单副本。
2-copy:两副本。
3-copy:三副本。
EC N+M:纠删码模式。其中N、M为正整数,N>M,且N+M≤128。表示将数据分割成N个片段,并生成M个校验数据。
默认值为EC 2+1。
说明以下场景均为集群可用的前提下:
创建EC N+M的卷后:
卷所在存储池可用故障域数量大于等于卷的最小副本数时,可以向卷中写数据。卷所在存储池可用故障域数量小于最小副本数时,不能向卷写数据,且系统会产生告警。
卷所在存储池可用故障域数量大于等于N+M,卷数据正常,不会产生降级。卷所在存储池可用故障域数量处于[N, N+M),卷数据将处于降级状态,建议尽快添加或修复故障域。卷所在存储池可用故障域数量小于N时,已写入的数据发生损毁。
创建副本模式的卷后:
卷所在存储池可用故障域数量大于等于卷的最小副本数时,可以向卷中写数据。卷所在存储池可用故障域数量小于最小副本数时,不能向卷写数据,且系统会产生告警。
卷所在存储池可用故障域数量大于等于副本数,卷数据正常,不会产生降级。对于两副本、三副本卷,卷存储池所在故障域大于等于1,但小于副本数时,卷数据将处于降级状态,建议尽快添加或修复存储池故障域。卷所在存储池无可用故障域时,已写入的数据发生损毁。
--min-replica MIN_REPLICA 最小副本数(仅集群版支持)。
对于副本模式的卷,假设卷副本数为X,最小副本数为Y(Y必须≤X),该卷每次写入时,至少Y份数据写入成功,才视为本次写入成功。对于EC N+M模式的卷,假设该卷最小副本数设置为Y(必须满足N≤Y≤N+M),必须满足总和至少为Y的数据块和校验块写入成功,才视为本次写入成功。
取值:整数。对于副本卷,取值范围是[1, N],N为副本模式卷的副本数,默认值为1。对于EC卷,取值范围是[N, N+M],默认值为N。
--ec-fragment-size EC_FRAGEMENT_SIZE 纠删码模式分片大小。卷冗余模式为EC模式时,此设置才生效,否则忽略。
取值:1、2、4、8、16、32、64、128、256、512、1024、2048、4096,单位是KiB。默认值为16。
-o SECTOR_SIZE 或 --sector-size SECTOR_SIZE
设置扇区大小。
取值:512、4096,单位为字节。默认值为4096。
说明:扇区大小的选取:根据自身业务场景,一般情况下,单次I/O操作的数据大小大于或接近4KiB,则推荐选择4096;单次I/O操作的数据大小接近512Bytes,则推荐选择512。如果对接VMware等虚拟化平台,则推荐选择512Bytes。
-w WRITE_POLICY 或 --write-policy WRITE_POLICY
卷的写策略:
WriteBack(wb):回写,指数据写入到内存后即返回客户端成功,之后再异步写入磁盘。适用于对性能要求较高,稳定性要求不高的场景。
WriteThrough(wt):透写,指数据同时写入内存和磁盘,并在都写成功后再返回客户端成功。适用于稳定性要求较高,写性能要求不高,且最近写入的数据会较快被读取的场景。
WriteAround(wa):绕写,指数据直接写到磁盘,不写入内存。适用于稳定性要求较高,性能要求不高,且写多读少的场景。
默认值为WriteBack(wb)。
-P PATH 或 --path PATH 指定存储卷数据的数据目录(仅单机版支持)。
如果创建卷时不指定数据目录,使用服务器设置的默认数据目录。
-m STORAGE_MODE 或 --mode STORAGE_MODE 设置卷的存储类型:
Local:本地模式,数据全部保留在本地。
Cache:缓存模式,本地保留部分热数据,全部数据异步存储到OOS中。
Storage:存储模式,本地保留全部数据,并异步存储到OOS中。
存储类型默认为Local。
-B BUCKET_NAME 或 --bucket BUCKET_NAME 已存在的OOS存储桶的名称。
注意请勿开启Bucket的生命周期设定和合规保留。
-A ACCESS_KEY 或 --ak ACCESS_KEY OOS AccessKeyID。 -S SECRET_KEY 或 --sk SECRET_KEY OOS SecretAccessKey。 -C CLOUD_STORAGE_CLASS 或 --cloud-storage-class CLOUD_STORAGE_CLASS
设置OOS的存储类型:
STANDARD:标准存储。
STANDARD_IA:低频访问存储。
默认为STANDARD。
-E ENDPOINT 或 --endpoint ENDPOINT 设置OOS Endpoint。具体OOS Endpoint详见OOS Endpoint和区域。 --sign-version VERSION 指定上云签名认证的类型:
v2:V2签名认证。
v4:V4签名认证。
默认值为v2。
--region REGION 表示Endpoint资源池所在区域。具体region详见OOS Endpoint和区域。
V4签名时,此项必填。
-M CLOUD_COMPRESSION 或 --cloud-compression CLOUD_COMPRESSION
是否压缩数据上传至OOS:
Enabled(on):压缩数据上传至OOS。
Disabled(off):不压缩数据上传至OOS。
默认值为Enabled(on)。
-O OBJECT_SIZE 或 --object-size OBJECT_SIZE
数据存储在OOS中的大小。
取值:128、256、512、1024、2048、4096、8192,单位是KiB。默认值为1024。
-X PREFIX 或 --prefix PREFIX 设置OOS中的前缀名称,设置前缀名称后,卷数据会存在存储桶以前缀命名的类文件夹中。如果未指定前缀,则直接存储在以卷名称命名的类文件夹中。
取值:字符串形式,长度范围是1~256。
示例
示例1
单机版本地卷:创建卷lun1,容量为10 GiB,Target为target1,卷数据存储在数据目录/mnt/storage01上。
[root@hblockserver CTYUN_HBlock_Plus_3.7.0_x64]# ./stor lun add -n lun1 -t target1 -p 10 -P /mnt/storage01
Created LUN lun1 successfully.
示例2
集群版本地卷:创建卷lun1,容量为10 GiB,Target为target1,卷冗余模式为3-copy。
[root@hblockserver CTYUN_HBlock_Plus_3.7.0_x64]# ./stor lun add -n lun1 -t target1 -p 10 -c 3-copy
Created LUN lun1 successfully.
示例3
集群版本地卷:创建卷lun01a,容量为100 GiB,Target为target01,卷冗余模式为EC 2+1,分片为32 KiB。
[root@hblockserver CTYUN_HBlock_Plus_3.7.0_x64]# ./stor lun add -n lun01a -t target01 -c EC 2+1 --ec-fragment-size 32 -p 100
Created LUN lun01a successfully.
示例4
单机版上云卷:创建卷luna2,容量为110 GiB,Target为targeta,卷的存储类型为Storage,使用V4签名认证,存储前缀为hblock。
[root@hblockserver CTYUN_HBlock_Plus_3.7.0_x64]# ./stor lun add -n luna2 -t targeta -p 110 -m Storage -B hblocktest3 -E oos-cn.ctyunapi.cn -A cb22b08b1f9229f85874 -S ***************** --sign-version v4 --region cn -X hblock
Created LUN luna2 successfully.
示例5
集群版上云卷:创建卷lun03a,容量为1000 GiB,Target为target03,卷冗余模式为EC 2+1,分片为32 KiB,卷的存储类型为Cache,使用V4签名认证。
[root@hblockserver CTYUN_HBlock_Plus_3.7.0_x64]# ./stor lun add -n lun03a -t target03 -c EC 2+1 --ec-fragment-size 32 -p 1000 -m Cache -B hblocktest1 -E oos-cn.ctyunapi.cn -A 9fe711b8b89ad73c2a46 -S ***************** --sign-version v4 --region cn
Created LUN lun03a successfully.