我在旧服务器上安装了 Proxmox (PVE),我想交换旧驱动器以获得更多空间。但首先我想将 PVE 安装移至 SSD。够简单的。
初始点:
- 1x76GB SATA(PVE 根 LVM)
- 2x500GB SATA(VG1 使用 mdadm 配置为 RAID1 - LVM Thinpool)
最终目标:
- 1x120GB SSD(PVE 根 LVM)
- 2x500GB SATA(VG1 更长一些)
- 1x2000GB SATA*(在 VG1 中,以便将
pvmove
旧 RAID 中的所有文件转移到该驱动器)
*此驱动器将在 mdraid 设置中与另一个 2TB 驱动器一起配置,该驱动器将在稍后添加(由于缺少电缆和 SATA 端口)。
我插入 SSD 并使用 Linux 启动实时 USB,运行我在网上找到的 dd 命令,将旧的 76GB 驱动器复制到新的(但已使用的)120GB SSD。一切正常,除了磁盘大小仍显示为 76GB 之外。
因此,为了解决这个问题,事后我不太确定我做了什么。看看历史记录,我相信我运行了以下命令
echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
parted -l
# At this point I got a few questions and I chose Fix and/or Ignore until it was finished
pvresize /dev/sda3
lvresize /dev/pve/data -l 100%FREE
现在我认为我已经完成并开始处理清单上的下一个项目。在这里我遇到了我的深夜大脑 Stu Pid。
我用一个驱动器创建了 RAID
mdadm --create /dev/md2 --level 1 --raid-devices 2 /dev/sdd missing
# Next, I forgot to RTFM..
mkfs.ext4 /dev/md2
# I actually aborted the above command Ctrl-C...
# Uhhhh. I create the Physical Volume and extended the VG
pvcreate /dev/md2
vgextend vg1 /dev/md2
# Next, I dunno
lvextend /dev/vg1/tpool /dev/md2
resize2fs /dev/mapper/vg1-tpool
# Again what? And now something from Youtube
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
dpkg-reconfigure pve-kernel-`uname -r`
从那时起,出于某种原因,我parted -l
再次开始resize2fs
跑步vg1-tpool
。我只知道我不知道此时我在做什么。
总而言之,这就是我最终得到的结果(为简洁起见,省略了一些信息):
root@host:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 512M 0 part
└─sda3 8:3 0 111.3G 0 part
├─pve-swap 253:0 0 8G 0 lvm [SWAP]
├─pve-root 253:1 0 18.5G 0 lvm /
├─pve-data_tmeta 253:2 0 1G 0 lvm
│ └─pve-data-tpool 253:4 0 82.8G 0 lvm
│ ├─pve-data 253:5 0 82.8G 0 lvm
│ ├─pve-vm--102--disk--0 253:6 0 15G 0 lvm
│ └─pve-vm--103--disk--0 253:7 0 4G 0 lvm
└─pve-data_tdata 253:3 0 82.8G 0 lvm
└─pve-data-tpool 253:4 0 82.8G 0 lvm
├─pve-data 253:5 0 82.8G 0 lvm
├─pve-vm--102--disk--0 253:6 0 15G 0 lvm
└─pve-vm--103--disk--0 253:7 0 4G 0 lvm
sdb 8:16 0 465.8G 0 disk
└─sdb1 8:17 0 465.8G 0 part
└─md1 9:1 0 465.7G 0 raid1
├─vg1-tpool_tmeta 253:8 0 108M 0 lvm
│ └─vg1-tpool-tpool 253:10 0 2.3T 0 lvm
│ ├─vg1-tpool 253:11 0 2.3T 0 lvm
│ ├─vg1-vm--100--disk--0 253:12 0 32G 0 lvm
│ ├─vg1-vm--100--disk--1 253:13 0 350G 0 lvm
│ └─vg1-vm--101--disk--0 253:14 0 32G 0 lvm
└─vg1-tpool_tdata 253:9 0 2.3T 0 lvm
└─vg1-tpool-tpool 253:10 0 2.3T 0 lvm
├─vg1-tpool 253:11 0 2.3T 0 lvm
├─vg1-vm--100--disk--0 253:12 0 32G 0 lvm
├─vg1-vm--100--disk--1 253:13 0 350G 0 lvm
└─vg1-vm--101--disk--0 253:14 0 32G 0 lvm
sdc 8:32 0 465.8G 0 disk
└─sdc1 8:33 0 465.8G 0 part
└─md1 9:1 0 465.7G 0 raid1
├─vg1-tpool_tmeta 253:8 0 108M 0 lvm
│ └─vg1-tpool-tpool 253:10 0 2.3T 0 lvm
│ ├─vg1-tpool 253:11 0 2.3T 0 lvm
│ ├─vg1-vm--100--disk--0 253:12 0 32G 0 lvm
│ ├─vg1-vm--100--disk--1 253:13 0 350G 0 lvm
│ └─vg1-vm--101--disk--0 253:14 0 32G 0 lvm
└─vg1-tpool_tdata 253:9 0 2.3T 0 lvm
└─vg1-tpool-tpool 253:10 0 2.3T 0 lvm
├─vg1-tpool 253:11 0 2.3T 0 lvm
├─vg1-vm--100--disk--0 253:12 0 32G 0 lvm
├─vg1-vm--100--disk--1 253:13 0 350G 0 lvm
└─vg1-vm--101--disk--0 253:14 0 32G 0 lvm
sdd 8:48 0 1.8T 0 disk
└─md2 9:2 0 1.8T 0 raid1
└─vg1-tpool_tdata 253:9 0 2.3T 0 lvm
└─vg1-tpool-tpool 253:10 0 2.3T 0 lvm
├─vg1-tpool 253:11 0 2.3T 0 lvm
├─vg1-vm--100--disk--0 253:12 0 32G 0 lvm
├─vg1-vm--100--disk--1 253:13 0 350G 0 lvm
└─vg1-vm--101--disk--0 253:14 0 32G 0 lvm
root@host:~# vgdisplay
--- Volume group ---
VG Name pve
VG Access read/write
VG Status resizable
VG Size <111.29 GiB
PE Size 4.00 MiB
Total PE 28489
Alloc PE / Size 28489 / <111.29 GiB
Free PE / Size 0 / 0
--- Volume group ---
VG Name vg1
VG Access read/write
VG Status resizable
VG Size 2.27 TiB
PE Size 4.00 MiB
Total PE 596101
Alloc PE / Size 596101 / 2.27 TiB
Free PE / Size 0 / 0
root@host:~# lvdisplay vg1
--- Logical volume ---
LV Name tpool
VG Name vg1
LV Write Access read/write
LV Creation host, time host, 2020-09-11 00:05:40 +0200
LV Pool metadata tpool_tmeta
LV Pool data tpool_tdata
LV Status available
# open 4
LV Size 2.27 TiB
Allocated pool data 15.16%
Allocated metadata 50.58%
Current LE 596047
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:10
实际的错误是什么?我该如何修复它们?看起来我已经以某种方式分配了每个 VG 上的所有范围,所以现在我真的无能为力!再次,是否仍然可以:
- 收回“自由空间”,无论这意味着什么
- 修复 /dev/md2 以便我可以
pvmove
正确地从 /dev/md1 访问
答案1
你想要一个名为VG1,由两个 RAID 组成。两个小磁盘形成/dev/md1,大磁盘形成/dev/md2。从lsblk
输出和屏幕截图来看,这就是您所拥有的。好的!尽管也许 LVM 的内置镜像可能是更好的解决方案(更简单,可能灵活性较差)。
现在,事情变得很奇怪。您在 /dev/md2 上创建了一个文件系统,然后通过将设备转变为物理卷来丢弃该文件系统。将 /dev/md2 添加到卷组(确定)并扩展t池超过整个尺寸VG1。这很好,但如果您扩展逻辑卷以使用所有空间,您不应该对所有空间都用完感到惊讶。
更奇怪的是,延长后t池,你就跑resize2fs /dev/mapper/vg1-tpool
吧。这实际上应该会导致错误,因为该卷上没有文件系统。或者也许您遗漏了一些步骤?
获得可用空间VG1,我只需将该卷的大小减小到之前的大小即可。通常,这应该可以工作,希望任何可能使用的精简卷t池没有看到太多的活动。
最后,我绝对不会使用随机教程和 Youtube 视频来完成我不理解且有可能毁掉我的服务器的任务。在重试之前,请阅读有关 LVM、精简卷和文件系统的完整介绍。