硬件RAID阵列扩展后,fdisk将不允许我使用其他可用扇区


10

我们在Dell R720xd上拥有一个约18TB的大型硬件突击阵列。目前,RAID5阵列由6x4TB组成,我需要对其进行扩展。

步骤1展开硬件RAID阵列。

如果您安装了Dell管理工具,就足够简单了。

omconfig storage vdisk action=reconfigure controller=0 vdisk=1 raid=r5 pdisk=0:1:0,0:1:1,0:1:3,0:1:3,0:1:4,0:1:5,0:1:8,0:1:9

(新磁盘是最后两个,可以通过使用该omreport工具确认。)尽管花费了一些时间,但是一切都很好,而且我能够确认阵列已扩展。

% omreport storage vdisk controller=0 vdisk=1

Virtual Disk 1 on Controller PERC H710P Mini (Embedded)

Controller PERC H710P Mini (Embedded)
ID                                : 1
Status                            : Ok
Name                              : bak
State                             : Ready
Hot Spare Policy violated         : Not Assigned
Encrypted                         : No
Layout                            : RAID-5
Size                              : 26,078.50 GB (28001576157184 bytes)
...
Device Name                       : /dev/sdb
...

步骤2新分区

因此,虚拟磁盘现在报告增加的大小(26TB)。并fdisk同意...

Disk /dev/sdb: 25.5 TiB, 28001576157184 bytes, 54690578432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2D20632-37D1-4607-9AA0-B0ED6E457F91

Device     Start         End     Sectors  Size Type
/dev/sdb1   2048 39064698846 39064696799 18.2T Linux LVM

但是,当我将其他分区添加到磁盘时,会发生以下情况...

Command (m for help): n
Partition number (2-128, default 2): 2
First sector (34-2047): 

现在,磁盘上大约还有160亿个扇区,但是我无法使用它们。仅向我提供34-2047区。即使我当前仅设置一个分区,也无法分配8TB的新空间。

令我感到奇怪的另一件事是,为我提供了分区号2-128,而不仅仅是2-4。分区表未显示任何扩展分区,因此我希望最初将其限制为仅4个分区。

我有什么想念的吗?

  • 自扩展驱动器阵列以来,计算机已重新启动。在此之前,fdisk仅报告原始的18TB
  • 努力cfdisk,而不是仅仅报告在39亿美元范围内使用2015年行业整体虽然报告25TB。
  • 考虑到我们可能会丢失所有数据,如果可以避免,我们不想删除并重新创建该分区。一旦完成,我们倾向于使用新分区简单地扩展LVM卷组。
  • 它与“ 另一个服务器故障”问题类似,但是我不受分区用尽的限制,而且我不认为自己受到扩展分区的限制。
  • 驱动器扩展不会扩展扇区大小。如果是fdisk,我将不会报告扇区计数的增加。加号pvsvgs并且不会报告LVM下的任何其他未分配空间
  • 我在虚拟机上进行试运行,但没有遇到这种情况。但是我正在关闭虚拟机并增加其磁盘设备大小。因此在大小增加期间它不处于联机状态。再加上虚拟机的驱动器尺寸要小许多个数量级。

更新 Micheal请求的1个 'x'pert模式输出...

Command (m for help): x

Expert command (m for help): p
Disk /dev/sdb: 25.5 TiB, 28001576157184 bytes, 54690578432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2D20632-37D1-4607-9AA0-B0ED6E457F91
First LBA: 34
Last LBA: 39064698846
Alternative LBA: 39064698879
Partitions entries LBA: 2
Allocated partition entries: 128

Device     Start         End     Sectors Type-UUID                            UUID                                 Name      Attrs
/dev/sdb1   2048 39064698846 39064696799 E6D6D379-F507-44C2-A23C-238F2A3DF928 E9CB58BF-F170-4480-A230-6E2A238367D1 Linux LVM 


Expert command (m for help): v
MyLBA mismatch with real position at backup header.
1 error detected.

那么可能是LBA错误?


2
fdisk请到进入电子商务x冒失的模式,然后p再RINT分区表,然后verify它。
迈克尔·汉普顿

有人修复了fdisk以支持GPT吗?上次我在GPT驱动器上尝试过它时,警告我确实应该使用gnu parted,但这已经很长时间了。
DerfK '17

是的,现代版本的fdisk可以处理GPT。
后台打印程序

我认为GPT是为什么为我提供2-128的分区数量,而不是局限于4个分区。那正确吗?
Vagnerr '17

@Vagnerr是的,GPT支持的分区比旧的MBR方案更多。
DerfK

Answers:


6

问题是备份分区表的位置。通常,您希望主分区表位于开始位置,而备份分区表位于末尾。磁盘大小调整使更多扇区可用,但从未移动备份表。fdisk不喜欢这样,我认为那是MyLBA mismatch with real position at backup header.错误消息。不太清楚。

我从切换fdiskgdisk,输出有些不同。在gdisk中,您有...

r       recovery and transformation options (experts only)

在进入并运行verify时给出了更有用的错误消息...

Recovery/transformation command (? for help): v

Problem: The secondary header's self-pointer indicates that it doesn't reside
at the end of the disk. If you've added a disk to a RAID array, use the 'e'
option on the experts' menu to adjust the secondary header's and partition
table's locations.

Identified 1 problems!

gdisk专家模式下,有以下选项...

e       relocate backup data structures to the end of the disk

...成功运行,现在验证输出...

Expert command (? for help): v

No problems found. 15625881566 free sectors (7.3 TiB) available in 2
segments, the largest of which is 15625879552 (7.3 TiB) in size.

现在打印分区表显示的最后一个可用扇区为560亿而不是390亿,我能够创建新的分区并将其添加到LVM中,如果有人对此感兴趣,可以使用...

partprobe           <-- add the /dev/sdb2 device if you don't want to reboot 
pvcreate /dev/sdb2
vgextend bak /dev/sdb2
lvextend /dev/mapper/bak-bak -l 100%PVS -r

为了明确起见,为了避免在重定位备份数据结构后需要重新启动,您运行了partprobe吗?另外,此职位是救生员。感谢您的贡献。
旋转

@Swivel是的。如果不运行partprob或重新启动sdb2设备,则不会在/ dev目录中创建该设备,并且必须在该目录中才能执行随后的lvm命令。我很高兴该帖子对您
有所

2

该snafu的关键是:

Last LBA: 39064698846

您的GPT标签没有反映出已更改的中等大小。fdisk确实以不完美但至少合乎逻辑的方式搜索可用空间-它会在GPT Label的第一个LBA与最后一个LBA 之间可用的最大可用空间中寻找第一个可用扇区。

解决该问题的一种方法可能是sfdisk转储标签,将其适当地编辑为中等大小然后写回,或者更好地使用该标签,以parted解决IMO的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.