- 论坛徽章:
- 0
|
本帖最后由 云杉上的蝴蝶 于 2010-8-28 04:46 编辑 \n\n回复 1# wmwbadmin \r\n\r\n\r\n zpool create iscsi c1t1d0 c2t1d0 c3t1d0 c4t1d0 cache c5t1d0\r\n你是创建了一个zpool 名为 iSCSI \r\n没有加任何mirror 和raidz 选项,应该默认是raid0 模式\r\ncache 选项是指定ZFS L2RAC 设备\r\n这句命令没有什么问题,满足你的性能最大化的要求。\r\n\r\n另外你的image 文件未必是最好的方式\r\nzpool create 只是创建了一个空的存储池,\r\n通常的做法是通过ZFS create -v 创建一个zvol (zfs block 设备)\r\n然后把这个zvol 作为iSCSI lu ,通过、COMSTAR iSCSI target 共享出去!\r\n另外创建 zvol 时应该指定适当的blocksize ,默认是128K,\r\n但是注意,SSD 一半都是128K的页面,每次写入都要读取这128K的数据,在内存中更新改动的内容后,再一次性写入整个128K的页面,完成NAND的一次擦写动作!\r\n如果没有关闭checksum,默认的还会在内存中计算checksum 校验值!然后写入特定的磁盘区域\r\n另外内存够的话,其实可以再加一块SSD ,作为写缓存设备ZIL,然后启用ZFS的顺序写入优化功能!\r\n\r\nZFS的顺序写入优化功能是对ZFS每个block 做一个index ,写入数据时不一定会写入到原来的block里,而是通过顺序写入到空闲的block里,然后修改文件分配表中的存储地址为新的block地址,并将原有数据的block标记为free ,类似修改链表指针的操作。很明显这样做的好处是,对于传统硬盘,减少了反复寻道的时间,对于SSD,可以不用读取数据,直接凑满128K的数据进行页面写入,不足128k的部分直接填0 就好了!\r\n1T的硬盘,默认的128K的ZFS record size 大概需要4G的内存来建立每个block 的索引项。\r\n时间上这个索引表是首先建立在物理硬盘上的,内存足够载入整个索引表的情况下,ZFS的顺序写入优化功能对提高磁盘的写效率是有很明显的性能提升的,但是如果内存不足的话,就会遇到查找索引表时需要到读物理硬盘的情况(即缓冲命中失败),如果这种情况发生得过多,反而会导致磁盘写入性能的下降!所有默认顺序写入优化是关闭的!\r\n\r\n 通常出于ZFS 安全性考虑,一个完整的ZFS 混合存储池需要4个SSD,2个一组mirro ,一组作为L2RAC ,一组配置为ZIL。\r\n其实cach 设备也可以有各种zfs 支持的raid 模式。\r\n\r\n总的来说,ZFS 的性能提升很大程度上取决于物理内存的大小!\r\nSSD 至少内存的廉价替代品,你买80G 内存肯定的钱够你买4个80G的SSD 了(你可以自己算一下)\r\n我相信你的主板不会超过16条DIMM ,要知道4G的条子比2G的贵不止1倍!\r\n\r\n你现在是14G内存,操作系统保留1G,你自己算一下,大概可以有多少内存给ARC 用,然后设置合适的ARC 内存限额!不设置的话,ARC 会吃掉大量的内存! |
|