免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5177 | 回复: 11
打印 上一主题 下一主题

磁盘效能的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-27 13:11 |只看该作者 |倒序浏览
来论坛时间不长,加上自身基础差,所以有些帖子看起来吃力,但仍是学了不少东西,并在朋友帮助下付诸实践,将自己的opensolaris服务器投入使用,主要功能是提供iSCSI存储,有关内存缓冲以作为cache盘使用的二级缓冲80G SSD盘不知道我在理解上是否正确,情况是这样的:\r\n\r\ncpu*2 X64\r\n14G内存\r\n500G SATA盘*4\r\n80G intel SSD  (作为cache盘的c5t1d0)\r\n双千兆intel网卡绑定\r\n使用zpool create iscsi c1t1d0 c2t1d0 c3t1d0 c4t1d0 cache c5t1d0 命令组建的,请注意命令中无raidz字段\r\n然后在这个阵列中创建了一个1800G的空img文件,并让对外服务的iSCSI指向这个img文件\r\nwindows客户端使用iSCSI连接到它并格式化后往里面添加自己想要的东西\r\n我的应用环境需要尽可能让客户端提高访问这个虚拟盘的速度,换句话说就是想让内存以及SSD最大的发挥效能起到缓冲作用,我的理解是opensolaris的这种cahce属性应该是基于文件系统的前提下,所以我是用创建IMG文件的方式,并没有用磁盘模式对外映射。\r\n最近的应用我发现读数据还没什么,可是写数据opensolaris的cpu占用通常都达到60-80%甚至更高的占用率,我想这一方面是硬盘是SATA并非SAS缘故,另一方面是因为创建的iscsi连接访问是文件形式而非磁盘模式。\r\n\r\n我的问题是:有关我对只有创建镜像文件形式才能让cache发挥效能的理解是否正确,磁盘形式呢?确实cache就起不到作用了吗?\r\n请高手们能尽量详细谈谈好吗!\r\n此问题困扰一段时间了,希望在这里得到答案。谢谢您!

论坛徽章:
0
2 [报告]
发表于 2010-08-28 04:05 |只看该作者
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 ,类似修改链表指针的操作。1T的硬盘,默认的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 会吃掉大量的内存!

论坛徽章:
0
3 [报告]
发表于 2010-08-28 04:05 |只看该作者
本帖最后由 云杉上的蝴蝶 于 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 会吃掉大量的内存!

论坛徽章:
0
4 [报告]
发表于 2010-08-28 04:16 |只看该作者
本帖最后由 云杉上的蝴蝶 于 2010-8-28 04:34 编辑 \n\n回复 2# 云杉上的蝴蝶 \r\n\r\n截止opensolaris 200906 和Solaris 10 U8 版本,你如果主板的SATA接口设置为AHCI (即SATA)模式的话,\r\nSolaris 10 U8 根本就认不到硬盘,opesolars 可以认到,可以装,装完重启后grub 引导是失败的!\r\n官网的资料都说是装完操作系统之后,加载相应的驱动可以使用SATA接口模式的硬盘,没有说支持引导!\r\n所以我不建议用主板上自己带的ICH的SATA 接口,性能和带简易raid功能的SAS接口适配器差不少!\r\n而且SATA接在SAS接口上用,性能提升是真的有的!\r\n\r\n    另外,iSCSI 顾名思义客户端的磁盘访问都是通过IP打跑的scsi 命令,你物理硬盘是SATA的,opensolars 是当IDE设备在用,本生磁盘接口的效率就差一点,再加上SCSI 命令到IDE 命令的转换,性能损耗损是不小的!iSCSI命令的打包解包+ SCSI 命令到IDE/SATA 磁盘操作命令的转换,所有这些都是靠CPU在算的,xeon 5500 之前,CPU自带的SSE系列指令集都没有对ZFS 的check sum 等操作优化,所有这一切都导致CPU的占用率肯定会高一点!\r\n\r\n\r\nLSI 8口 6G SAS 端口的卡是2800块吧,个人觉得不算贵!\r\n个人认为你买高端的自己带256~1G板载cache的SAS raid 卡,未必性能就好过ZFS 的软件raid\r\n(ZFS不仅仅是一个文件系统,或者LVM软件,他和内存,SSD 一起组成了一块软硬结合的RAID 卡,DDR3 内存的性能怎么算都好过你raid卡上板载的DDR2 甚至仅仅是DDR档次的ECC ram 吧!)\r\n另外有条件的话,你有4000块买一个企业级的SLC NAND的SSD  不如考虑把物理硬盘换成4个希捷的XT 系列固态混合硬盘!\r\n\r\n个人觉得同样的钱可以买2个OCZ 的更大容量的 MLC的SSD 做raid1 或raid0 模式配置然后作为cache 设备使用,会实际的性能会好过你单个SLC的产品。虽然峰值的IOPS赶不上SLC 的产品,但是那些IOPS都是4K的数据块测试出来的结果,如果你的iSCSI盘在客户端挂着后格式化成32K block size 的NTFS ,那实际的IOPS是会打很多折扣的!

论坛徽章:
0
5 [报告]
发表于 2010-08-28 21:23 |只看该作者
谢谢老大的指点,尤其是从ZFS工作机制方面给予的帮助颇大\r\n因为我的工作环境客户机方面已经做了写转向,不会往iscsi里面写东西,只有特定的机器才有写权限,所以基本上在写方面暂时不用考虑这方面的性能,只要求读性能强,我是想说如果保持目前硬件配置不变的情况下,采用我这种方法-即IMG文件格式的方式好,还是用裸磁盘映射或者其它更好的方式对读性能更有帮助性能更佳!

论坛徽章:
0
6 [报告]
发表于 2010-08-28 21:27 |只看该作者
目前我所知的ZFS的一些性能优化例如压缩,都是针对文件格式的,例如cache里面驻留二级文件缓存,如果是裸磁盘格式的话,那SSD以及1G以外的内存中驻留的又是什么呢?是类似Linux那样的BUFF吗?即磁盘物理单元内存映射,这样的理解都不知道对不对,望多多指教!

论坛徽章:
0
7 [报告]
发表于 2010-08-28 23:08 |只看该作者
回复 6# wmwbadmin \r\n\r\n\r\n   请注意,cache 设备(L2RAC) 是在创建zpool (ZFS 存储池)的时候设定的,这个就好像硬件HBA卡上的缓存一样!\r\n   不同的是ZFS 这张HBA 的缓存是分层的存储结构(内存(RAC) + SSD (L2RAC/ZIL))\r\n   SSD 是用来弥补RAC (一级缓存)容量不足的相对廉价的折中解决方案。\r\n   他不管你最终硬盘是什么raid模式和什么文件系统(ZFS 字符设备/ZFS 块设备(Zvol)),缓存是整个存储池上的zfs 或zvol 共享的。\r\n   \r\n    zfs 缓存的是磁盘block 编号(地址)和block 里的内容,和具体的文件名是没有关系的。\r\n    \r\n    虽然物理磁盘不存在写操作,但是最近读到的数据往SSD里缓存的时候实际上SSD还是在平凡得进行写操作啊,SSD的 NAND 在写操作的同时是不能进行同步读操作的。如果你最经常读取的数据>RAC 的容量时就会将最不常用的数据页面交换到 SSD 上,此时SSD会发生物理写,RAC(内存)或SSD缓存的容量被占用达到某个%比的时候,也会发生物理写。\r\n\r\n你的image 文件时建立了zfs 只后,创建的一个大文件吧,个人觉得zvol 的性能会更好一些。

论坛徽章:
0
8 [报告]
发表于 2012-08-01 09:54 |只看该作者
谢谢楼主了,楼主辛苦了,呵呵

论坛徽章:
0
9 [报告]
发表于 2012-09-09 10:51 |只看该作者
不太了解这个的,觉得不错

论坛徽章:
0
10 [报告]
发表于 2012-09-21 09:30 |只看该作者
永远支持楼主,继续发好贴
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP