不久前,我在我们的 Debian X64 服务器上配置了 RAID0,到目前为止,它运行良好,没有问题。有一天,我刚刚检查df -h
,它显示已使用了 62% 的磁盘空间。
RAID 配置了两个 2TB 驱动器,目前只使用了 20GB,但是当我看到输出时,它显示大小为 34G。我的设置有问题吗?
df -H 的输出:
df -H
Filesystem Size Used Avail Use% Mounted on
rootfs 456G 7,3G 425G 2% /
udev 11M 0 11M 0% /dev
tmpfs 3,4G 300k 3,4G 1% /run
/dev/disk/by-uuid/ae73679c-c3cd-4a60-bcbb-5b6ddce867f7 456G 7,3G 425G 2% /
tmpfs 5,3M 0 5,3M 0% /run/lock
tmpfs 11G 4,1k 11G 1% /run/shm
/dev/sdc2 529M 41M 461M 9% /boot
// This last one
/dev/md1 34G 20G 13G 62% /media/attachment
mdadm --detail /dev/md1 的输出:
/dev/md1:
Version : 1.2
Creation Time : Wed Apr 29 11:12:21 2015
Raid Level : raid0
Array Size : 33553408 (32.00 GiB 34.36 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Apr 29 11:12:21 2015
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Name : legion03:1 (local to host legion03)
UUID : 68e853a6:7af46176:d9c147c7:6ff87bb0
Events : 0
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
输出
fdisk -l | grep Disk
fdisk -l | grep Disk
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
Disk identifier: 0x00089ca4
Disk /dev/sdc: 480.1 GB, 480103981056 bytes
Disk identifier: 0x00047ef7
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
Disk identifier: 0x000275d2
Disk /dev/md1: 34.4 GB, 34358689792 bytes
Disk identifier: 0x00000000
我的 RAID0 设置有问题吗?任何帮助都很好。谢谢。
更新
fdisk -l 的输出:
fdisk -l
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 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
Disk identifier: 0x00089ca4
Device Boot Start End Blocks Id System
/dev/sdb1 2048 3907029167 1953513560 fd Linux raid autodetect
Disk /dev/sdc: 480.1 GB, 480103981056 bytes
255 heads, 63 sectors/track, 58369 cylinders, total 937703088 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
Disk identifier: 0x00047ef7
Device Boot Start End Blocks Id System
/dev/sdc1 2048 33556480 16777216+ 82 Linux swap / Solaris
/dev/sdc2 33558528 34607104 524288+ 83 Linux
/dev/sdc3 34609152 937701040 451545944+ 83 Linux
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 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
Disk identifier: 0x000275d2
Device Boot Start End Blocks Id System
/dev/sda1 2048 3907029167 1953513560 fd Linux raid autodetect
Disk /dev/md1: 34.4 GB, 34358689792 bytes
2 heads, 4 sectors/track, 8388352 cylinders, total 67106816 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000
Disk /dev/md1 doesn't contain a valid partition table
答案1
您的/dev/md1
似乎是两个分区的组合,每个分区大小为 16 GiB(或者可能是不同的大小,加起来为 32 GiB)。fdisk -l
之后添加的输出与此相矛盾。 如果没有完整的历史记录,我们只能推测导致当前状况的原因/dev/md1
,但有一种可能性是分区表在创建 RAID 设备后发生了变化(我还没有测试过该事件序列是否会导致这种情况)。
要仅报告这两个磁盘上的分区表,请使用以下命令:
fdisk -l /dev/sd[ab]
如果您想保留该分区中的 20G 数据,则需要将其复制到其他地方然后再重新创建/dev/md1
。
/dev/sda
和上的现有分区表/dev/sdb
适用于这些磁盘上的 RAID 分区。我删除了之前关于如何(以及是否)对这些磁盘进行分区的评论。
要拆除并重新创建,/dev/md1
您可以使用以下命令序列:
mdadm --stop /dev/md1
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sd[ab]1
我相信第一个命令是非破坏性的,但您需要在/dev/md1
运行第二个命令之前备份现有数据(实际上,在运行第一个命令之前)。我相信mdadm --assemble
这可以让您逆转第一个命令的效果,但一旦您的数据备份,这就没有必要了。
我没有测试过这个命令序列(最近也没有),但它与我的记忆和我阅读的文档一致。注意正确输入设备名称。mdadm --create
在创建 RAID 镜像时,找出是否使用两个组件磁盘的完整分区大小将会很有趣。您的评论表明您想要一个 RAID 镜像;如果您想要其他东西,参数值--level
会有所不同。
您可能还想检查/etc/mdadm.conf
或的内容/etc/mdadm/mdadm.conf
以确保它们没有指定不需要的默认值。