linux – mdadm和4k扇区(高级格式)
Serverfault上有很多关于对齐4k扇区磁盘的问题,但有一件事对我来说还不是很清楚.
我成功对齐了我的RAID1 LVM.我做的一件事是使用mdadm superblock version 1.0(它将超级块存储在磁盘的末尾). 该联机帮助页说:
1.2版本是默认的,适用于4k扇区驱动器吗?我看到它的方式,它不是,因为从一开始4k超级块的长度不是4k的多(超级块大约200字节长,如果我没记错的话). 对此有任何见解是值得欢迎的. 编辑: 下面回答说mdadm超级块1.1和1.2意味着4k对齐.我刚创建了一个完整的设备raid: mdadm --create /dev/md4 -l 1 -n 2 /dev/sdb /dev/sdd 然后我添加了一个逻辑卷: vgcreate universe2 /dev/md4 该阵列以16 MB / s同步: md4 : active raid1 sdd[1] sdb[0] 1465137424 blocks super 1.2 [2/2] [UU] [>....................] resync = 0.8% (13100352/1465137424) finish=1471.6min speed=16443K/sec 所以我怀疑它是否正确对齐. (磁盘是1.5 TB WD EARS.我在桌面PC上安装它们,它们以大约80 MB / s的速度同步.) EDIT2: 这是 – 检查输出: # mdadm --examine /dev/sdb /dev/sdb: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : 79843828:7d939cce:1c8f0b32:cf339870 Name : brick:4 (local to host brick) Creation Time : Sat Jul 9 10:47:33 2011 Raid Level : raid1 Raid Devices : 2 Avail Dev Size : 2930275120 (1397.26 GiB 1500.30 GB) Array Size : 2930274848 (1397.26 GiB 1500.30 GB) Used Dev Size : 2930274848 (1397.26 GiB 1500.30 GB) Data Offset : 2048 sectors Super Offset : 8 sectors State : active Device UUID : dd2e3b5f:33214b96:1cb88169:25deb050 Update Time : Sat Jul 9 10:49:06 2011 Checksum : 4f7cd785 - correct Events : 1 Device Role : Active device 0 Array State : AA ('A' == active,'.' == missing) 数据偏移量为2048个扇区,可以分为8个,因此可以认为没问题.卷组的物理盘区大小为4 MiB,也可以由8分割.但这甚至不重要,因为重新同步与设备包含的内容无关. 另一个编辑:它似乎不是一个对齐问题;因为hdparm -t显示其中一个磁盘的读取速度非常低(30 MB / s).还有别的不对劲. 编辑2:当我找到答案时,我永远不会记得更新这篇文章.一切都很好.其中一个磁盘坏了.显然它是在它的最后一站,甚至在某个时刻破裂.替换磁盘工作正常. 解决方法
是的,它是为4k扇区对齐而制作的.
对于1.1和1.2超级块,在每个磁盘的开头保留空间,以便超级块不会被踩踏.超级块创建代码强制此保留空间为4kB的倍数.所有物理读取都从此保留空间的末尾偏移,而不是从超级块的末尾开始.因此,这保留了均匀划分为4kB的任何扇区大小的对齐. 如果您有兴趣,这里是the mdadm source code(super1.c)的证明: /* force 4K alignment */ reserved &= ~7ULL; sb->data_offset = __cpu_to_le64(reserved); 并且RAID1 code in the kernel使用该data_offset参数来抵消物理读取,例如,在读取路径中: read_bio->bi_sector = r1_bio->sector + mirror->rdev->data_offset (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |