我最近得到了一个新的专用服务器,我正在尝试安装它包含的所有驱动器。
$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME FSTYPE SIZE MOUNTPOINT LABEL
loop0 squashfs 31.1M /snap/snapd/11036
loop1 squashfs 31.1M
loop2 squashfs 55.5M /snap/core18/1988
loop3 squashfs 69.8M /snap/lxd/19032
loop4 squashfs 55.4M /snap/core18/1944
loop5 squashfs 31.1M /snap/snapd/10707
loop6 squashfs 69.9M /snap/lxd/19188
sda 1.8T
├─sda1 987.5K
├─sda2 linux_raid_member 1.8T md2
│ └─md2 ext4 1.8T / root
├─sda3 swap 512M [SWAP] swap-sda3
└─sda4 iso9660 1007.5K config-2
sdb 1.8T
├─sdb1 987.5K
├─sdb2 linux_raid_member 1.8T md2
│ └─md2 ext4 1.8T / root
└─sdb3 swap 512M [SWAP] swap-sdb3
sdc 1.8T
├─sdc1 987.5K
├─sdc2 linux_raid_member 1.8T md2
│ └─md2 ext4 1.8T / root
└─sdc3 swap 512M [SWAP] swap-sdc3
sdd 1.8T
├─sdd1 987.5K
├─sdd2 linux_raid_member 1.8T md2
│ └─md2 ext4 1.8T / root
└─sdd3 swap 512M [SWAP] swap-sdd3
正如预期的那样,我找到了我的设置的四个磁盘。现在我得出结论,只有一个被安装,因为:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 16288292 0 16288292 0% /dev
tmpfs 3261132 1268 3259864 1% /run
/dev/md2 1922082712 6531836 1817891636 1% /
tmpfs 16305644 0 16305644 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 16305644 0 16305644 0% /sys/fs/cgroup
/dev/loop4 56832 56832 0 100% /snap/core18/1944
/dev/loop5 31872 31872 0 100% /snap/snapd/10707
tmpfs 3261128 0 3261128 0% /run/user/1001
/dev/loop3 71552 71552 0 100% /snap/lxd/19032
/dev/loop6 71680 71680 0 100% /snap/lxd/19188
/dev/loop2 56832 56832 0 100% /snap/core18/1988
/dev/loop0 31872 31872 0 100% /snap/snapd/1103
因此,我想安装剩余的驱动器,但我不确定哪个驱动器已安装,或者没有安装,因为上面显示的文件系统是/dev/md2我无法将其与 /dev/sda、/dev/sdb、/dev/sdc 或 /dev/sdd 关联起来。
我想它与 /dev/sda 有关但我想知道如何确定这一点?
答案1
上面显示的文件系统是 /dev/md2,我无法将其与 /dev/sda、/dev/sdb、/dev/sdc 或 /dev/sdd 关联起来。
仔细查看 lsblk 输出。md2
设备是实际上显示在那里,作为子设备(这意味着它是在 sda2 之上构建的虚拟设备,而 sda2 本身是 sda 上的一个分区)。
还请注意,在“lsblk”输出中,md2
以下显示的内容相同全部四个磁盘,而不只是一个。这意味着它是一个“多磁盘”设备,将多个磁盘组合成一个虚拟设备 - 换句话说,“md”设备实际上是一个软件 RAID 阵列。
因此,当“findmnt”或“df”显示 /dev/md2 已安装时,这意味着所有四个磁盘都已涉及。您可以使用它mdadm -D /dev/md2
来检查它是什么阵列类型 - Linux mdadm 处理传统 RAID,例如 RAID 10 或 RAID 6,它们将显示在“Raid Level:”中。
如果您的托管服务提供商使用一些不良的 RAID 配置文件创建了阵列(例如,在所有四个磁盘上进行 RAID 1 镜像,处于容量冗余的极端情况),您可以使用以下命令对其进行重塑:
# mdadm -G /dev/md2 --level=raid10
# watch cat /proc/mdstat
虽然 mdadm 可能要求您首先将 RAID1 转换为 RAID5,然后将 RAID5 转换为 RAID0,最后将 RAID0 转换为 RAID10near2... 请参阅mdadm 指南。
如果这不可能的话,您可能需要:
- 确保您可以通过控制台(KVM)访问服务器;
- 从旧阵列中删除一些磁盘并使用它们创建新阵列(暂时使用 RAID 0);
- 将整个操作系统复制到其中并以某种方式使用新阵列重新启动(例如编辑
root=
内核命令行选项); - 销毁旧阵列并将其磁盘添加到新阵列,转换为 RAID 10。
(您可以选择使用 mdadm 以外的其他工具来创建新阵列,例如 LVM、ZFS 或多磁盘 Btrfs。如果这是一台全新的服务器,您当然可以通过 KVM 从头开始重新安装它,而不是尝试迁移现有的操作系统。)