配置SAME的注意事项
 

oracle有一篇著名的文章,提出为了提高和简化IO配置,应该使用SAME方法-也就是Stripe And Mirror Everything. 这绝对是一种好方法。但是在配置过程中,并不是简单的在磁盘设备上SAME就可以了,你必须了解你的配置导致的数据在磁盘上的分布。
我们举一个例子:
假设你有2块磁盘用来存储数据,每个盘被分成了2个分区,如此共有4个分区可供使用,分别是hda1;hda2;hdb1;hdb2。数据通过2k大小的条带存放在hda1和hdb1上,每个chunk大小是1k,hda2和hdb2存放它们的镜像数据。
这个配置有什么问题呢?
我们来模拟一个2k的数据存储过程:这个2K的数据块会被分成两个1K的数据块,分别存放到hda1和hdb1上,与此同时,hda2和hdb2也会存放一份它们的镜像数据块。这个存放过程会导致每个磁盘寻道两次,写操作两次。与只在hda1和hdb1及hda2和hdb2之间作镜像(不做条带)相比,性能会差很多。这是因为第一种方法会把顺序读写的IO变成了随机读写。
类似的情况在实际配置中并不少见,特别是随着磁盘阵列的普及和存储虚拟化的盛行,更是容易出现。
解决的办法只有一个:深入的了解系统软硬件配置。