大部分的公有云厂商都会提供块存储,文件存储,对象存储这三种存储类型,每种存储类型都有自己的特点和适合的应用场景,下表针对IBM Cloud上的这三种存储类型做了一个简单的对比。
言归正传,切入正题,今天我们来看一下IBM Cloud上的文件存储和性能
大致分为三个步骤:
- 在IBM Cloud上创建文件存储
- 将文件存储挂载到服务器上
- Fio测试文件存储性能
1. 创建文件存储
登录cloud.ibm.com, 在目录页搜索file storage,进入服务创建页面
指定文件存储所在区域,付费方式(按小时或按月付费),存储大小和快照空间大小,IOPS级别,按创建按钮即可完成
目前单块文件存储的容量限制在20G-12T之间(24T正在上线计划中),一台服务器可同时挂载多块文件存储,同时一块文件存储最多可以给64台服务器进行挂载使用
快照是IBM Cloud File Storage的一项功能。如果用户意外修改或删除了卷中的关键数据,利用快照可以轻松、快速地复原数据到某个先前的时间点,如何使用快照功能,下文会有更详细的介绍
IBM Cloud file storage有两种供应类型(性能型文件存储和普通型文件存储),普通型文件存储的总IOPS由文件存储总容量* IOPS/GB来决定,例如上图中存储大小为500G,选择的是4 IOPS/GB, 那么该文件存储卷的IOPS就是500 * 4 IOPS/GB= 2000 IOPS(接下来的性能会实际测试是否能达到这个值),也就是说普通型文件存储的总IOPS会随着容量来线性扩展。 而性能型文件存储则可以先指定文件存储的总IOPS,再决定需要多大的文件存储,例如下图就是指定了总IOPS为8000, 存储大小为600G
在文件存储的管理页面,可以查看该文件存储的详细信息,例如下图中的mount point就是待会挂载该文件存储到服务器时要指定的文件存储挂载点
我们也可以修改文件存储的大小
在管理页面,可以对快照功能进行一些设置
修改快照空间大小(需要注意的是,快照空间不能超过文件存储本身的大小)
设置快照计划,例如下图设置了每天24:00点生成一个快照,保留7个快照(单个文件存储卷最多可保留50个快照)
快照空间需要多大,主要取决于两个因素:
- 某个时间段内的数据变化量
- 保留多少个时间段的快照
例如你指定的快照计划是每天做一个快照,最多保留7天的快照,而每天的数据变化量是10G, 那么总快照空间至少需要7 * 10=70G(实际生产环境建议要多20%-30%的空间)
快照可以按计划自动生成,也可以手工生成快照,但不管是自动生成还是手工生成,单个文件存储块最多只能有50个快照。在快照空间使用率达到75%和90%,会向客户发送通知提醒。如果空间使用率达到95%,那么将自动删除最旧的快照,直到空间使用率 < 95% 。
2.挂载文件存储
接下来把文件存储卷挂载到CentOS linux服务器上,首先把该文件存储卷授权给服务器访问(服务器和文件存储需在同一个数据中心)
安装NFS-utils软件包
挂载文件存储卷
执行命令:
mount -t nfs -o nfsvers=3 fsf-dal1301e-fz.adn.networklayer.com:/IBM02SEV1924503_1/data01 /nfsdir
-t参数指定文件系统的类型,nfsvers=3指定nfs协议版本,IBM Cloud文件存储支持NFS V3 和 NFS V4.1,但首选建议NFS V3,因为 NFS V4.1 是有状态协议(NFS V3 是无状态协议),在网络事件期间可能会发生协议问题。NFS V4.1 必须停止所有操作,然后才能完成锁定回收。
fsf-dal1301e-fz.adn.networklayer.com:/IBM02SEV1924503_1/data01表示要挂载的文件存储卷的挂载点(在文件存储详细页面可查看), /nfsdir表示服务器上挂载文件存储卷的目录
为了保证服务器重启后挂载信息不丢失,可以写到/etc/fstab里
2.文件存储性能测试
挂载好文件存储后,接下来用FIO进行读写性能测试,我们测试四个场景,分别是随机读,随机写,随机混合读写,顺序混合读写,这里测试的文件存储容量大小为500G(4 IOPS/GB),理论上的IOPS为2000
随机读测试命令:
fio -filename=test -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
随机写测试命令:
fio -filename=test -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
随机混合读写测试命令:
fio -filename=test -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
顺序混合读写测试命令:
fio -filename=test -direct=1 -iodepth 1 -thread -rw=rw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
从上面的测试结果可以看到,不管是是随机读,还是随机写,随机混合读写,顺序混合读写, IOPS都符合或略高于承诺的2000(500G * 4 IOPS/GB).
关于IBM Cloud文件存储的详细资料可参考:
https://cloud.ibm.com/docs/FileStorage?topic=FileStorage-getting-started&locale=en