我有一台机器有两个物理完全相同的硬盘驱动器,目前这些硬盘驱动器已经与LVM一起设置为一个逻辑卷。 最初的想法是尽可能地利用“连续”的空间,以便存储大量的非常大的数据。 时间过去了,现在机器的使用发生了变化,所以现在我宁愿将这两个磁盘安装在RAID1中,这样既保证了额外的安全性(是的,无论如何我都会进行备份),因为我真的不需要那么多空间了。 主要担心的是第二块磁盘是否确实有数据,但是我找不到任何方法来真正知道物理卷上存储了多less数据。
我试图找出最好的办法是什么,LVM为我提供了什么function。 我需要从头重新安装,还是有办法“拆分”LVM并创buildRAID1arrays,同时保留数据 – 至less – 第一个磁盘(假设第二个磁盘上没有数据)?
非常感谢你。
LVM支持一些简单的RAIDconfiguration,包括镜像(RAID1)。
你最好的select是将LV缩小到适合单个磁盘的大小(使用resize2fs – 假设为ext3 / 4 – 和lvresize ),将VG迁移到单个PV( pvmove ),然后转换LV镜像( lvconvert --mirror )。
作为替代方法,您可以将LV转换为镜像,而不是将第二个磁盘从VG( lvremove )中移除,将其重新格式化为包含一个元素的mdadm RAID1arrays,将数据复制到那里,然后删除剩余的LVM VG并添加它把数组当成镜像。
它应该不用说,但我会说:无论如何,确保你有一个最新的备份之前尝试这些方法之一。 有很多方法可以轻松搞定和丢失数据。 如果可能的话,在对现场系统进行任何更改之前,build立一个临时arrays并对其进行testing(例如,使用一对USB拇指驱动器!)。
根据你的发行版/内核和工具的实际情况,有一些select。
首先,您应该能够使用以下命令来确定使用多less空间在磁盘上。
lvs -o +devices
要么
pvs -o+pv_used
那么在缩小块设备之前,可能需要缩小文件系统,因为可用空间将比以前less。
请参阅lvconvert的手册页。 应该可以将条纹/线性卷转换为RAID1。 你也会发现不同的例子和良好的文档,以确定是否可以转换。
如果lvconvert不适合你,你可以使用pvmove和vgreduce释放一个磁盘。 你以前也必须缩小文件系统。
然后你可以用一个驱动器启动一个RAID1。
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 missing
然后使你的文件系统在/ dev / md0上,挂载并复制数据。 然后卸载您的LVM并将第二个磁盘添加到您的RAID1。 之前分区或清理LVM。
mdadm --add /dev/md0 /dev/sdb1
请记住,在进行这些步骤之前备份是一个非常好的主意,因为一个微小的错误可能会破坏您的数据。