我有一个 3ware 9550SXU-12 存储控制器和连接到它的 750G 磁盘。磁盘被配置为单个单元(不是 JBOD)。
我一直在运行一些性能测试,主要是看分区对齐、加密、raid级别等对读/写/iops性能的影响。
我很惊讶在我的情况下,对齐分区的相同存储配置的读/写性能比未对齐的分区略低。
这促使我开始检查通过 3ware 控制器连接时磁盘对操作系统的可见性和使用主板上的端口时是否存在差异,主板上的端口根本不支持任何 RAID。
我知道 3ware 控制器放在磁盘上的磁盘控制块 (DCB) 元数据,以便更换控制器而无需重新配置它,因为配置数据是从磁盘上的 DCB 块读取的。我的控制器使用“新格式”,这显然意味着控制器在磁盘的最后 1024 个 LBA 中写入 DCB。
我很想知道我的对齐工作是否不会被 3ware 控制器仅将磁盘的一部分呈现给操作系统。
我发现了什么:
如果只是 1024x512B(DCB)的差异是可以理解的,但是 160MB 似乎有点太大空间来存储这种类型的控制器元数据。
问题:
有谁知道在对齐连接到在这些磁盘上存储单元配置的控制器的磁盘上的分区时是否还有其他注意事项,我可能错过了?
出于好奇 - 有谁知道最后 160MB 的磁盘介质是做什么用的?
谢谢
我有一个测试盒 (PowerEdge 2950),连接了 Perc 6/i 和 4 个 15.5k SAS 驱动器(块大小为 512 字节)。它们位于块大小为 64KB 的单个 RAID 5 虚拟磁盘中。
我正在创建一个跨越整个驱动器的测试分区。它应该与 64KB 块标记还是 512 字节块大小对齐?如果是后者,该分区可以从单个虚拟磁盘的 2048 字节开始,这意味着它将从第一个驱动器上的第二个空闲块开始(我假设)?
此外,我将添加另外两个驱动器并在以后重新创建 RAID 虚拟磁盘以进行更多测试,然后分区是否应该以 6x512 字节创建,所以从 3072 字节开始?
我已经阅读了一些关于此的类似问题,但我无法从中看出 RAID 卷的块大小如何与分区对齐、使用单个驱动器时的驱动器块大小相关。
我正在尝试验证我正在处理的每台服务器中的文件系统分区是否正确对齐。我有以下脚本,当我尝试运行时,将根据我使用的 if 语句(其中一个被注释掉)声明所有虚拟服务器已对齐或未对齐:
$myArr = @()
$vms = get-vm | where {$_.PowerState -eq "PoweredOn" -and $_.Guest.OSFullName -match "Microsoft Windows*" } | sort name
foreach($vm in $vms){
$wmi = get-wmiobject -class "win32_DiskPartition" -namespace "root\CIMV2" -ComputerName $vm
foreach ($partition in $wmi){
$Details = "" | Select-Object VMName, Partition, Status
#if (($partition.startingoffset % 65536) -isnot [decimal]){
if ($partition.startingoffSet -eq "65536"){
$Details.VMName = $partition.SystemName
$Details.Partition = $partition.Name
$Details.Status = "Partition aligned"
}
else{
$Details.VMName = $partition.SystemName
$Details.Partition = $partition.Name
$Details.Status = "Partition not aligned" …
Run Code Online (Sandbox Code Playgroud) 是否有必要对齐组成软件 RAID 1 阵列的分区?
本指南指出
“软件 RAID:虽然这里也需要注意正确对齐,但这不是明确必要的,因为至少使用了 64 KB 大小的块。”
我不明白软 RAID 如何改变性能命中/写入放大问题,因为底层 SSD 控制器仍然在超过必要的闪存页面上交错文件系统页面。
这是我的一个驱动器,我相信从 LBA 63 开始的分区意味着我没有对齐。分区是通过 CentOS 5 安装程序创建的。
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 63 610469 305203+ fd Linux raid autodetect
/dev/sda2 610470 16996769 8193150 fd Linux raid autodetect
/dev/sda3 16996770 25189919 4096575 fd Linux raid autodetect …
Run Code Online (Sandbox Code Playgroud) 预置 Ubuntu / Debian 工作正常 - 系统可启动。
但fdisk -l
结果如下:
Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000e157a
Device Boot Start End Sectors Size Id Type
/dev/sda1 63 192779 192717 94.1M 83 Linux
/dev/sda2 * 192780 1172744 979965 478.5M 83 Linux
/dev/sda3 1172745 96470324 95297580 45.5G 83 Linux …
Run Code Online (Sandbox Code Playgroud) 我一直在阅读有关分区对齐和文件系统优化(ext4 和 xfs)的所有内容,但仍然不够了解,无法有信心设置当前的配置。我剩下的困惑来自于 LVM 层以及我是否应该在来宾操作系统的文件系统上使用 raid 参数。
我的主要问题是:
当我使用“pvcreate --dataalignment”时,我是否使用为 RAID 上的文件系统计算的条带宽度(在我的情况下,ext4 为 128kB)、RAID 集的条带大小(256kB)、其他东西,或者我是否使用不需要这个吗?
当我在逻辑卷上的来宾中创建 ext2/3/4 或 xfs 文件系统时,是否应该添加底层 RAID 的设置(例如 mkfs.ext4 -b 4096 -E stride=64,stripe-width=128)?
有人在我下面的设置中看到任何明显的错误吗?我现在正在运行一些基准测试,但还没有做足够的工作来开始比较结果。
我在 3ware 9750-4i 控制器上有 4 个 RAID 10 驱动器(更多详细信息请参阅下面的设置),在 /dev/sda 处有一个 6.0TB 设备。这是我的分区表:
Model: LSI 9750-4i DISK (scsi)
Disk /dev/sda: 5722024MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1.00MiB 257MiB 256MiB ext4 BOOTPART boot
2 257MiB 4353MiB 4096MiB linux-swap(v1)
3 4353MiB 266497MiB 262144MiB …
Run Code Online (Sandbox Code Playgroud) linux virtual-machines lvm hardware-raid partition-alignment
有没有办法在使用标准 Linux fdisk(我尝试过 2.17.2 版)的磁盘上创建一个 2TB 分区,该分区是 4096 字节扇区对齐的?
我尝试了以下操作并遇到了所描述的错误:
-u
标志,它会将簇大小设置为 512 字节的一个扇区。然后,分区必须是 3,906,250,000 个簇长,fdisk 将这个数字截断为 2,147,483,647 (2^31-1)。-b 4096
,它允许我很好地创建分区(长度为 488,281,506 个扇区),但是如果我使用 来检查生成的分区的大小blockdev --getsize64
,它表明该分区只有 250GB 大,即它仍在使用扇区大小共 512 个。-S 64 -H 32
,那么它总是将扇区数设置回 63,这不会平均分为 4096(我知道,32 平均除以 8 在技术上就足够了,但是 - 调用我是完美主义者 - 我真的很想让分区从扇区 2048(1MB 对齐)开始,因为我读到的是这些天推荐的设置。是否有一些我可以传递给 fdisk 的参数组合,这将允许我创建一个从 1MB 开始的分区(扇区 2048 [256] 用于 512-[4096-] 字节扇区)并且正好是 2TB 长(3,906,250,000 [488,281,506] ] 扇区为 512-[4096-] 字节扇区)?
(我读到我可以只使用 gparted 并将驱动器更改为 GPT 分区,但我真的很想知道是否有办法使用标准 fdisk 和 MBR 分区来做到这一点。我看不出有什么原因为什么 MBR 分区不应该允许这个......)