我有一个带有许多 2 TB 磁盘的 Linux 服务器,目前都在一个 LVM 中,导致大约 10 TB 的空间。我在 ext4 分区上使用了所有这些空间,目前有大约 8.8 TB 的数据。
问题是,我的磁盘经常出现错误,即使我更换(也就是说,我用 dd 将旧磁盘复制到新磁盘,然后我将新磁盘放入服务器),一旦出现错误,它们,我经常会收到大约 100 MB 的损坏数据。这使得 e2fsck 每次都变得疯狂,并且通常需要一周时间才能让 ext4 文件系统再次处于正常状态。
所以问题是:您建议我将什么用作 LVM 上的文件系统? 或者你会推荐我做什么(我真的不需要 LVM)?
我的文件系统的配置文件:
主要问题是磁盘故障。我可以丢失一些文件,但我不能同时丢失所有文件。
如果我继续使用 ext4,我听说我最好尝试制作更小的文件系统并以某种方式“合并”它们,但我不知道如何。
我听说 btrfs 会很好,但我找不到任何关于它如何在不复制数据(mkfs.btrfs -d single?)时丢失磁盘的一部分(或整个磁盘)的线索。
欢迎任何有关该问题的建议,提前致谢!
我的系统中有一个卷组,是用单个物理卷创建的。
我正在创建两个逻辑卷 - 一个大小为 100M,另一个大小为 512M。
在LV上创建的100M大小的文件不显示出生时间属性。512M尺寸的LV没有这个问题。
有什么线索可以解释为什么会这样吗?
物理卷和卷组:
# pvdisplay
--- Physical volume ---
PV Name /dev/sda4
VG Name VG_System
PV Size 400.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 102399
Free PE 38099
Allocated PE 64300
PV UUID Awnq0n-24v1-Z53P-MC09-3Fvv-dc0r-6QvAyX
# vgdisplay VG_System
--- Volume group ---
VG Name VG_System
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 25
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV …Run Code Online (Sandbox Code Playgroud) 我的 Linux 服务器使用 LVM,因为我一年前更换了机器并从头开始安装。LVM 一直是一个救星,我喜欢它的灵活性。但是,我的 Linux 笔记本电脑上次完全安装是在三年前,因此使用的是直分区。
是否有可能 - 无需重新安装 - 将现有系统转换为 LVM?如果是这样,什么工具可以完成这项工作?
我希望在双引导系统上与 Windows 共享的任何文件系统都不能是 LVM。如果我错了,请告诉我,但我会感到惊讶。
我们在 Linux(当前为 2.6.37)上使用 RAID1+0 和 md 创建一个 md 设备,然后使用 LVM 在设备之上提供卷管理,然后使用 ext4 作为我们在 LVM 卷组上的文件系统。
使用 SSD 作为驱动器,我们希望看到 TRIM 命令通过层(ext4 -> LVM -> md -> SSD)传播到设备。
看起来最近的 2.6.3x 内核添加了许多与 SSD 相关的新 TRIM 支持,包括对 Device Mapper 场景的更多覆盖,但我们似乎仍然无法使其正确级联。
这还有可能吗?如果是这样,如何?如果没有,是否有任何进展?
xen domU 的定期 LVM 快照作为备份策略的可行性如何?优点,缺点,有什么问题吗?
对我来说,这似乎是快速、无脑恢复的完美解决方案。任何调查都可以在 domU 成功运行而没有中断的情况下对损坏的逻辑卷进行。
编辑:
这就是我现在在做完整系统备份时所处的位置。
现在我需要自动化这个。
VMware 允许在线扩展虚拟磁盘的大小 - 当 VM 运行时。Linux 系统的下一个预期步骤是:
fdiskpvresizelvresize操作resize2fs对于文件系统但我坚持第一步:fdisk和sfdisk仍显示旧大小的磁盘。
由于虚拟 LSI 逻辑控制器,我的磁盘是连接的 SCSI 虚拟磁盘。
如何在不重启的情况下刷新 Linux 内核中可用的虚拟磁盘大小和分区表信息?
据我所知,由于 VMWare 工具,所有这些步骤都可以用于正在运行的 Windows,无需重新启动,甚至无需任何用户操作。在 Linux 上,我也希望在线完成所有步骤,而且我已经知道步骤 2、3 和 4 可以在线工作。但是第一个 - 更改分区表中声明的分区大小(仍然)似乎需要重新启动。
更新:我的系统是内核为 2.6.26 的 Debian Lenny,我扩展的磁盘是主磁盘,其中包含一个包含“/”的“根”LV 的大 PV。
我制作了一个 LVM snapshop
lvcreate --name snap --size 10G -s /dev/vg00/vm
Run Code Online (Sandbox Code Playgroud)
如果我想删除快照而不保留快照后发生的更改,我应该写什么命令?
我应该写什么命令来将快照中的更改滚动到 /dev/vg00/vm ?
mount 显示挂载设备,如:
/dev/mapper/VolGroup01-LogVol00 on /var type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)
或者
/dev/mapper/VolGrp_backups-backups on /mnt/backups type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)
但
iostat 使用 dm- 表示法。像dm-0,dm-1等等。
我在哪里可以找到一种方法来知道哪个是哪个?
我即将在我的 CentOS 5 服务器上执行实验性升级。如果升级失败,我希望能够撤销对文件系统的更改。这种情况似乎类似于LVM2 读写快照的 LVM HOWTO 的第 3.8 节中的示例- 但该示例缺乏实际的操作方法。
我将如何提交更改,将它们合并回原始分区?
我将如何恢复更改,将文件系统恢复到其原始状态?如果不是彻底重启,我是否应该假设我需要重新启动多个服务?
是否可以仅对分区上的某些目录进行快照,还是分区范围的操作?
我正在讨论将 LVM 用于媒体/文件服务器,因为我想将多个物理硬盘组合成一个卷。我不想在我的 LVM 中使用任何 RAID,所以我的问题是:
如果我的卷中的多个硬盘之一出现故障,我会丢失所有数据还是只会丢失存储在该单个磁盘上的数据?
此外,如果我只是丢失单个磁盘上的数据,是否会像更换该磁盘并从备份中恢复其中的内容一样简单?
lvm ×10
linux ×8
mount ×2
snapshot ×2
storage ×2
backup ×1
btrfs ×1
ext4 ×1
filesystems ×1
iostat ×1
partition ×1
raid ×1
redundancy ×1
ssd ×1
stat ×1
trim ×1
vmware-esx ×1
xen ×1
zfsonlinux ×1