再谈存储-IOPS 计算方法

        存储真的很复杂么?当谈到有关虚拟桌面的存储的时候,大部分人只会问:每个用户分配多少空间是合适的?但实际上,作为桌面虚拟化来说,存储的考虑要远远复杂于简单的空间计算。
       虚拟桌面系统很依赖存储基础架构来承载用户环境和操作系统的不同部分。每个人的请求都会影响存储基础设施。如果没有合适的存储子系统的设计,用户的虚拟桌面会变得越来越慢,然后直到不可用,因为存储变为了最大的瓶颈。
      为了恰当的设计存储基础设施,架构师需要能够计算期望的每秒Input/Output Operations ,也就是我们俗称的IOPS, 计算IOPS 需要遵从以下规则
 
参数
描述
磁盘转速
 这个参数直接影响磁盘能够从正确的扇区读取数据的快慢
15,000 RPM: 150 随机 IOPS
10,000 RPM: 110 随机 IOPS
5,400 RPM: 50 随机 IOPS
Read/Write
IOPS 可以分解为读和写操作。不同的进程对读写的密集程度不一。读、写比例影响总IOPS

  • 读: 20%
  • 写: 80%(MCS下为50%:50%)
RAID 级别
 RAID 配置会由于不同类型的冗余影响实际写的数量。写惩罚会影响总IOPS
RAID 0: 无RAID 惩罚
RAID 1:  penalty of 2
RAID 10: Penalty of 2
RAID 5 (4 disks): Penalty of 4
RAID 5 (5 disks): Penalty of 5
桌面
生命周期
每个桌面有6种状态,每个阶段对存储子系统都有不同的影响.

 
启动: 26 IOPS
登录: 14 IOPS
工作:
  • 轻量: 4-8 IOPS
     
  • 普通: 8-12 IOPS
     
  • 重量: 12-20 IOPS
空闲: 4 IOPS
登出: 12 IOPS
Offline: 0 IOPS
根据这6种不同的虚拟桌面状态可以帮助架构师基于每服务器计算IOPS需求和完整的虚拟桌面基础架构.公式如下 :
总原生  IOPS=磁盘转速 IOPS * 磁盘数目
举例而言: 假设我们有8 块72G 的15,000 转 SCSI3 驱动,并按照RAID 10 配置。那么,这个存储系统总共会产生720 个功能性IOPS,计算公式如下:

 
功能性 IOPS=(((总原生 IOPS×写 %))/(RAID 惩罚))+(总原生IOPS×读 %)


总原生 IOPS=150×8=1200
功能性IOPS=(((1200× .8))/2)+(1200×.2)= 720
如果是MCS, 功能性IOPS =(1200*0.5)/2+ 1200*0.5=900 

 
这个计算会帮助确定当所有的桌面执行同样行为时候的可能性,当然,不是所有的情况都适合。实际上,在不同的hypervisor 上,不同的虚拟机状态可能是不一样的。因此,作为一个架构师来说,你需要根据不同桌面的综合体验来计算不同的服务器需求。根据计算,很有可能你都会发现可能你根本不需要SAN,使用本地硬盘就足够了!