以下是折腾这段时间折腾windows storage spaces的过程中遇到的一些问题,这是一笔不可多得的财富,记录备用。

  1. 在安装windows server 2019的时候,出现了找不到Intel series 320 160G这块SSD的问题。原因是这块SSD之前被用做ssdtier,分区表不干净,导致ws19的安装程序无法识别该硬盘,解决办法是将该硬盘的分区表删干净再重新安装。注:在ws19安装程序的cmd模式(shift+F10)中,diskpart也无法看到该硬盘,所以需要在第二台机器上先用工具,譬如diskgenius将该硬盘的分区表清空。
  2. 在GUI中创建单向奇偶校验虚拟盘时,numberOfColumns的默认值为3,所以powershell才是配置storage spaces的正确姿势。
  3. 在win10 ltsc中,可通过<<>>来配置storage spaces,而在windows server中,则需要通过server manager-file and storage service来配置storage spaces;
  4. 当出现"can't create the pool, check the drive connections"时,可在设备管理器中,先将硬盘disable后,再enable之。问题解决。
  5. 使用set-physicaldisk -newfriendlyname可以成功修改physicaldisk的friendlyname,但重启后friendlyname恢复至初始状态。这是一个bug,我说的。
  6. 硬盘一旦加入了storagepool,get-physicaldisk中的canpool状态为false。此时无法单独对该硬盘进行初始化和分区。
  7. 在一个存储池中,假如使用了storage tier技术,那么硬盘尽量使用相同的型号,假如由于停产的原因无法找到相同型号,则尽可能采用同一种转速、同一接口等。存储池的性能遵循最短木板理论。
  8. 微软仅在windows server版中支持data dedup,在win10中使用get-volume就会发现dedup的值是NotAvailable,执行enable-dedupvolume则出现找不到该cmdlet的错误。
  9. 在创建虚拟盘的时候,如果provision选择了thin方式,其maxsize的值可以大于storage pool的可用容量,但是当该虚拟盘的空间达到70%的时候,windows将该虚拟盘置于只读状态,你需要新增硬盘扩容才能继续对该虚拟盘进行写操作。所以正确的姿势是少用thin provision
  10. 与zfs不同,storage space不支持承载windows操作系统。所以系统盘的冗余需考虑其它方案。譬如在主机中插入两块阵列卡,一块专门插系统盘,启用hw raid,另外一块则刷成IT模式,用来插数据盘。不过这种方案比较费钱。听说adapter的raid卡可以实现hw raid和hba的共存,待确认。
  11. 可以在一个storage tier中创建不同resiliencytype的vdisk,譬如前面创建了一个hddtier(4columns parity)+ssdtier(2 mirror),可以创建一个parity vdisk01,mirror vdisk02和simple vdisk03。只是还没来得及测试。另外,无法创建不同columns的parity vdisk,譬如在该storage tier中创建一个3columns的parity vdisk就是失败。
  12. New-StorageTier时,对于-storagetiers @($hddtier, $ssdtier)中的变量,无法直接使用friendlyname作为参数。譬如,-storagetiers @(hddtier, ssdtier)就会失败,估计是个bug。