标签: lvm

如何在不使用 LiveCD 或重启的情况下在 Fedora 中调整根 LVM 分区的大小

我有一个虚拟机,最近它的磁盘映像从 20GB 增加到 50GB,并fdisk -l验证 VM 可以看到这个新大小。现在我需要调整我的根 LVM 分区的大小以填充额外的 30GB。

我找到 几篇 关于调整 LVM 大小的文章,但涉及调整根分区大小的少数文章都声称您需要从 LiveCD 启动。有没有办法在不关闭服务器的情况下做到这一点?服务器很关键,所以我想尽量减少停机时间。

编辑:输出fdisk -l

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 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: 0x00097c90

   Device Boot …
Run Code Online (Sandbox Code Playgroud)

fedora lvm

27
推荐指数
1
解决办法
5万
查看次数

LVM 需要分区表吗?

看来我能够在原始块设备之上成功执行 pvcreate ,而无需采取创建分区表的步骤。然后我就可以创建一个卷组、逻辑卷,最后是一个文件系统,挂载它,并通过 dd 进行测试。

它似乎有效,但我需要进行健全性检查。这是一个坏主意吗?

如何在原始块设备上创建 GPT 或 MBR 分区表?

如何使用 parted 显示正在使用的分区表类型?我试过这样做:

分开,选择/dev/sdb,打印,我得到:

错误:/dev/sdb:无法识别的磁盘标签

但是该驱动器目前正在使用中,我可以对其进行读写。这是在没有分区表的原始块设备上执行 LVM 时的预期输出吗?有什么想法吗?

谢谢!

lvm parted

26
推荐指数
5
解决办法
3万
查看次数

将 LVM 快照同步到备份服务器

我有许多 Xen 虚拟机在许多 Linux 服务器上运行。这些 VM 将其磁盘映像存储在 Linux LVM 卷中,设备名称类似于 /dev/xenVG/SERVER001OS 等。我想对这些磁盘映像进行定期备份,以便在需要时恢复 VM(LVM 设备已经在两台物理机之间使用 DRBD 进行了镜像,我只是在这里特别偏执)。

我该怎么做?显然,第一步是对 LVM 设备进行快照,但如何以最有效的方式将数据传输到备份服务器?我可以简单地复制整个设备,大致如下:

dd if=/dev/xenVG/SERVER001OS | ssh administrator@backupserver "dd of=/mnt/largeDisk/SERVER001OS.img"
Run Code Online (Sandbox Code Playgroud)

...但这会占用大量带宽。是否有类似 rsync 的工具用于在远程服务器之间同步整个磁盘块的内容?就像是:

rsync /dev/xenVG/SERVER001OS backupServer:/mnt/largeDisk/SERVER001OS.img
Run Code Online (Sandbox Code Playgroud)

如果我正确理解了 rsync 的手册页,上面的命令实际上不会起作用(会吗?),但它显示了我的目标。我知道 --devices rsync 选项是复制设备本身,而不是这些设备的内容。在与远程服务器同步之前制作 VM 映像的本地副本不是一种选择,因为没有磁盘空间。

是否有一个方便的实用程序可以在块设备和远程服务器上的备份文件之间进行同步?如果需要,我可以写一个,但现有的解决方案会更好。我是否错过了为我执行此操作的 rsync 选项?

linux backup rsync virtual-machines lvm

24
推荐指数
4
解决办法
4万
查看次数

使用 LVM 时如何显示已用设备/可用空间?

我有以下情况:

=$ LC_ALL=C df -hP | column -t
Filesystem              Size  Used  Avail  Use%  Mounted  on
/dev/mapper/vg0-rootlv  19G   854M  17G    5%    /
/dev/mapper/vg0-homelv  19G   343M  18G    2%    /home
/dev/mapper/vg0-optlv   19G   192M  18G    2%    /opt
/dev/mapper/vg0-varlv   19G   357M  18G    2%    /var
Run Code Online (Sandbox Code Playgroud)

我想知道这些卷使用了哪些物理磁盘,以及我有多少可用磁盘空间(未分配),以便我知道我可以增加多少。

linux lvm

23
推荐指数
3
解决办法
14万
查看次数

KVM/qemu - 直接使用 LVM 卷而不使用图像文件?

我不太确定如何表达这个问题(因此标题很糟糕),所以让我提供一个我正在尝试做的事情的例子。

在我的(旧)Xen 主机上,我能够直接向每个来宾提供 LVM 文件系统。这些文件系统实际上是在主机上创建和格式化的,并直接通过。例如,对于我的一台主机使用单独的 tmp 和交换分区,我这样定义存储:

磁盘 = [
'phy:/dev/vg1/guest1-swap,sda1,w',
'phy:/dev/vg1/guest1-disk,sda2,w',
'phy:/dev/vg1/guest1-tmp,sda3 ,w',
]

因此,guest1-swap 被格式化为交换分区,guest1-disk 和 guest1-tmp 被格式化为 ext4,从来宾的角度来看,它只是将它们视为 /dev/sda 下的三个格式化分区。

(这听起来可能需要做很多工作,但是有一些配置脚本,例如很棒的xen-tools,几乎可以自动化所有内容)。

这提供了一些非常有用的功能,其中两个我对找出 KVM 特别感兴趣:

  • 从主机操作系统挂载来宾文件系统。我可以随时对任何来宾文件系统进行只读挂载,即使是在来宾运行时也是如此。这有一个附带好处,即允许我在来宾运行时创建任何现有卷的 LVM 快照。通过这种方式,我可以在运行时从主机集中备份所有来宾。

  • 在线卷大小调整。因为这些卷包含标准的 Linux 文件系统,所以我可以使用 lvextend 和 resize2fs 的组合来扩展我的来宾文件系统,再次在它们在线时。

我目前正在设置将替换 Xen 主机的 KVM 主机。与 Xen 设置类似,我利用 LVM 提供直接文件系统访问,但 KVM/qemu 的行为有所不同,因为它始终为来宾创建映像文件,即使在 LVM 卷上也是如此。从来宾的角度来看,它认为这是一个未分区的磁盘,由来宾应用分区标签,然后创建分区和文件系统。

从访客的角度来看这很好,但从服务器/管理的角度来看,它似乎远不如我描述的 Xen 设置灵活。我还是 KVM 的新手,所以我可能(希望)遗漏了一些东西。

当我尝试在 KVM 主机上重新实现我以前的备份解决方案时遇到了这个问题,并且当我尝试挂载来宾的文件系统之一时挂载命令被阻塞。所以,解决这个问题是我目前的担忧,但这也让我担心调整大小的事情,因为我相信这个问题也会在某个时候出现。

所以,这里是我的问题:

  1. 有没有办法让 kvm/qemu 直接使用 LVM 卷文件系统,就像我在 Xen 设置中描述的那样?如果这有所作为,我会使用 libvirt 进行管理。

  2. 如果没有,我该怎么做才能在 KVM 下获得类似的挂载/备份功能?我已经看到有关使用带有 FUSE 的 libguestfs …

linux lvm kvm-virtualization

23
推荐指数
2
解决办法
4万
查看次数

“fdisk -l”类似于 LVM 逻辑卷的分区列表及其类型?

您知道“fdisk -l”如何列出驱动器分区表并显示每个分区的分区 ID/类型?

是否有类似的方法来获取 LVM 逻辑卷的分区 ID?

编辑:我知道“lvs”,这主要是我正在寻找的(它给了我逻辑卷的列表,有点像“fdisk -l”......除了知道什么也很有用逻辑卷的分区类型(我喜欢将其视为“虚拟分区”)。该信息是“fdisk -l”在右侧最后两列中列出的信息。(例如“8e”表示物理分区LVM 分区,或者 Linux ext 等的“83”)。

我正在寻找的工具可能不是 LVM 的一部分;也许只是其他一些可以在给定分区的情况下打印分区 ID/类型的实用程序?

linux partition lvm

22
推荐指数
5
解决办法
10万
查看次数

这是 LVM 快照的工作方式吗?

我试图弄清楚 LVM 快照是如何工作的,以便我可以在我的文件服务器上实现它,但是我很难在谷歌上找到任何解释它如何工作的东西,而不是如何将它用于基本备份系统。

从我读过的内容来看,我认为它的工作原理是这样的:

  • 您有一个 LVM,其中有一个主分区和许多不在分区中的未分配可用空间
  • 然后拍摄快照并将其安装在新的逻辑卷上。快照应该有变化,所以第一个快照将是一个完整的副本,对吗?
  • 然后,第二天拍摄另一个快照(这个分区的大小不必那么大)并挂载它。
  • LVM 以某种方式跟踪快照,并且不会在主卷上存储未更改的位。
  • 然后你决定你有足够的快照并摆脱第一个。我不知道这是如何工作的,也不知道这会如何影响下一个快照。

有人可以纠正我的错误。充其量,我猜,我在谷歌上找不到任何东西。


视频显示

obu1:/home/jail/home/qps/backup/D# vgdisplay
  --- 卷组 ---
  VG 名称文件服务器LVM
  系统标识
  格式lvm2
  元数据区 1
  元数据序列号 3
  VG 访问读/写
  VG 状态可调整大小
  最大低压 0
  当前 LV 2
  打开 LV 2
  最大 PV 0
  当前 PV 1
  法案 PV 1
  VG 大小 931.51 GB
  PE 大小 4.00 MB
  总PE 238467
  分配 PE / 大小 238336 / 931.00 GB
  免费 PE / 大小 131 / 524.00 MB
  VG UUID qSGaG1-SQYO-D2bm-ohDf-d4eG-oGCY-4jOegU

linux lvm snapshot

22
推荐指数
2
解决办法
5万
查看次数

如何轻松修复 Linux 磁盘上的单个不可读块?

我的 Linux 系统开始在系统日志中抛出 SMART 错误。我追踪了它并相信问题出在磁盘上的单个块上。我如何轻松地让磁盘重新分配那个块?我想知道在这个过程中哪个文件被破坏了。(我知道,如果磁盘上的一个块出现故障,其他块可能会出现故障;我有一个很好的持续备份,只想尝试保持该磁盘正常工作。)

在网上搜索会找到坏块 HOWTO,它描述了卸载磁盘上的手动过程。这看起来很复杂而且容易出错。是否有工具可以在 Linux 中自动执行此过程?我唯一的其他选择是制造商的诊断工具,但我认为这会破坏坏块而没有任何关于被破坏的东西的报告。最坏的情况,可能是文件系统元数据。

有问题的磁盘是主系统分区。使用 ext3fs 和 LVM。这是来自 syslog 的错误日志和来自 smartctl 的相关位。

smartd[5226]: Device: /dev/hda, 1 Currently unreadable (pending) sectors

Error 1 occurred at disk power-on lifetime: 17449 hours (727 days + 1 hours)
... Error: UNC at LBA = 0x00d39eee = 13868782
Run Code Online (Sandbox Code Playgroud)

pastebin有一个完整的 smartctl 转储。

linux hard-drive lvm smart smartctl

22
推荐指数
2
解决办法
3万
查看次数

无法删除打开的逻辑卷

当我尝试删除逻辑卷时,我收到消息

#lvremove /dev/my-volumes/volume-1 
Can't remove open logical volume "volume-1"

#lvchange -an -v /dev/my-volumes/volume-1 
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Deactivating logical volume "volume-1"
Found volume group "my-volumes"
LV my-volumes/volume-1 in use: not deactivating

#lvremove -vf /dev/my-volumes/volume-1 
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Can't remove open logical volume "volume-1"

#lvs
/dev/dm-1: read failed after 0 of 4096 at 0: …
Run Code Online (Sandbox Code Playgroud)

lvm

22
推荐指数
4
解决办法
11万
查看次数

将同一个分区挂载到多个 VM 是否安全?

我将 ubuntu 20.04 与 Xen Hypervisor 一起使用。在我的机器上,我有一个 SSD 来承载我的 VM 映像,然后是四个我有数据的 sata 驱动器。我当前的设置是在我的 domain0 上挂载数据,然后通过网络文件服务器将该数据提供给其他 VM。

这似乎效率低下,因为所有 VM 都必须通过我的 NIC 才能访问数据。我认为这是一个大瓶颈的假设是否正确?

在同一物理机中提供数据的行业标准是什么?对此设置有什么建议或改进吗?

在每个 VM 上安装数据 LVM 是否有危害?我对这种方法的担忧是,如果两个 VM 尝试同时访问同一个数据点会发生什么?此设置是否容易受到数据损坏的影响?

服务器设置数据图

xen virtual-machines lvm mount

22
推荐指数
2
解决办法
3896
查看次数