为 UNIX 对新系统磁盘进行分区时,您对台式机和/或服务器的首选策略是什么?
请包括磁盘分区布局、文件系统格式和选项、挂载点、RAID 级别、LVM 组和卷、加密以及任何其他相关设置。
我有一个带有两个磁盘的 LVM2 卷。较大的磁盘损坏了,所以我不能 pvmove。将它从组中删除以从另一个磁盘保存最多数据的最佳方法是什么?这是我的 pvdisplay 输出:
Couldn't find device with uuid WWeM0m-MLX2-o0da-tf7q-fJJu-eiGl-e7UmM3.
--- Physical volume ---
PV Name unknown device
VG Name media
PV Size 1,82 TiB / not usable 1,05 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total PE 476932
Free PE 0
Allocated PE 476932
PV UUID WWeM0m-MLX2-o0da-tf7q-fJJu-eiGl-e7UmM3
--- Physical volume ---
PV Name /dev/sdb1
VG Name media
PV Size 931,51 GiB / not usable 3,19 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total …Run Code Online (Sandbox Code Playgroud) 我们正在一些项目中评估用于 Linux 虚拟化的 KVM。到目前为止一切进展顺利。但我们的要求之一是能够为正在运行的来宾添加磁盘空间而无需重新启动或使其脱机。这可以用 KVM 实现吗?
到目前为止,我唯一发现的(但尚未测试)是能够将磁盘热插拔到机器中。如果我走这条路,那么我总是可以将新磁盘添加到来宾上的 LVM 卷组,然后扩展所选的逻辑卷。这种方法的最大缺点是,随着时间的推移,我们最终可能会导致客户拥有可变数量的虚拟磁盘。“真正的”磁盘空间将通过 SAN 提供给主机,因此我们可以随时向主机添加更多空间。
我想安装一个新的 SSD 并将整个设备用作 LVM 的 PV - 换句话说:我不打算在这个设备上放置一个分区。因此不需要在擦除块上对齐分区。
--dataalignment在pvcreateing时设置为擦除块大小和在ing时设置为擦除块大小--physicalextentsize的倍数是否足够vgcreate?
因此,假设我的 SSD 的擦除块大小为 1024k,是否可以
pvcreate --dataalignment 1024k /dev/ssdvgcreate --physicalextentsize $(( x * 1024 ))k ...还有什么需要考虑的吗?
假设我将 ext4 文件系统放在这个 VG 的 LV 上,将 ext4 扩展区与 LVM-PE 大小对齐是个好主意,对吗?那么 ext4-extents 的大小应该与 LVM-PE-size 相同还是倍数?
感谢您的澄清!
我有一台 KVM 主机,上面有多个 VM。每个 VM 在主机上使用一个逻辑卷。我需要将 LV 复制到另一台主机。
通常,我会使用类似的东西:
dd if=/the/logical-volume of=/some/path/machine.dd
Run Code Online (Sandbox Code Playgroud)
将 LV 转换为图像文件并使用 SCP 移动它。然后使用 DD 将文件复制回新主机上的新 LV。
这种方法的问题是您需要的磁盘空间是虚拟机在两台机器上占用的磁盘空间的两倍。IE。一个 5GB 的 LV 为 LV 使用了 5GB 的空间,而 dd 副本也为图像使用了额外的 5GB 空间。这对于小型 LV 来说很好,但是如果(就像我的情况一样)您有一个 500GB 的 LV 用于大型 VM,该怎么办?新主机具有1TB硬盘,所以它不能保持一个500GB的DD镜像文件,并有一个500GB的逻辑卷复制到和有房的主机操作系统和房间其他较小的客人。
我想做的是:
dd if=/dev/mygroup-mylv of=192.168.1.103/dev/newvgroup-newlv
Run Code Online (Sandbox Code Playgroud)
换句话说,通过网络将数据直接从一个逻辑卷复制到另一个逻辑卷,并跳过中间映像文件。
这可能吗?
我在 LVM LV 之上的 LUKS 之上有一个 500GiB ext4 文件系统。我想将 LV 的大小调整为 100GiB。我知道如何在 LVM LV 上调整 ext4 的大小,但如何处理 LUKS 卷?
mgorven@moab:~% sudo lvdisplay /dev/moab/backup
--- Logical volume ---
LV Name /dev/moab/backup
VG Name moab
LV UUID nQ3z1J-Pemd-uTEB-fazN-yEux-nOxP-QQair5
LV Write Access read/write
LV Status available
# open 1
LV Size 500.00 GiB
Current LE 128000
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 2048
Block device 252:3
mgorven@moab:~% sudo cryptsetup status backup
/dev/mapper/backup is active and is in …Run Code Online (Sandbox Code Playgroud) 我有一台带有 2 个硬盘驱动器 (2x 1 TB) 的服务器,以 RAID 1 (SW-RAID) 运行。我想通过使用flashcache. 上面运行着 KVM 虚拟机,使用LVM.
对此,我有以下问题:
flashcache适用于块设备,但是这些都是具有自己设置的虚拟机。flashcache可以从传统 HDD 检索文件,我可以简单地更换 SSD?writeback与writethroughand相比会快多少writearound?不幸的是,我无法访问测试系统,所以我可以flashcache在不卸载磁盘的情况下安装在实时服务器上吗?我在这里找到了一个很棒的教程,我将使用它。
这真的扰乱了我备份这台机器的计划......
我有一台服务器,它是多个虚拟机的 KVM 管理程序。其中之一是运行 Docker。它在 /dev/vdb 上有它的 Docker 卷,它被设置为一个 LVM PV,Docker 使用它的 direct-lvm 驱动程序来存储 Docker 容器数据。此虚拟磁盘是主机本地磁盘上的 LVM LV。
主机和来宾都运行 Fedora 21。
主机对该卷的看法是(仅显示相关卷):
[root@host ~]# lvs
LV VG Attr LSize
docker2.example.com-volumes vm-volumes -wi-ao---- 40.00g
[root@host ~]# dmsetup ls --tree
vm--volumes-docker2.example.com--volumes (253:10)
?? (9:125)
Run Code Online (Sandbox Code Playgroud)
客人对这个卷的看法是(同样,只显示了相关卷):
[root@docker2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb docker-volumes lvm2 a-- 40.00g 0
Run Code Online (Sandbox Code Playgroud)
使用主机上的所有其他 LVM 卷,我可以使用 拍摄快照lvcreate --snapshot,备份快照,然后lvremove它没有问题。但是对于这个特定的卷,我不能这样lvremove做,因为它正在使用中:
[root@host ~]# lvremove /dev/vm-volumes/snap-docker2.example.com-volumes
Logical volume vm-volumes/snap-docker2.example.com-volumes is used …Run Code Online (Sandbox Code Playgroud) 我们的服务器总 RAM 为 64GB,应用程序通常最多使用 30GB 的可用 RAM。其中一个应用程序处理大量平面文件,而我们遇到了吞吐量问题,即等待磁盘 I/O。在探索可能的解决方案时,出现了 RAM 磁盘的想法。RAM 磁盘的问题在于其固有的波动性。
我找到了有关 RAM 磁盘、RAID 1 配置和用于对物理磁盘进行分组的逻辑镜像卷的单独文档,但我似乎找不到任何文档表明这些磁盘复制解决方案是否可以与 RAM 磁盘一起使用。更重要的是,由于我们的想法是让 RAM 磁盘可用于读/写,并且让物理磁盘“遮蔽”RAM 磁盘,赶上写入操作,因此我们希望 RAM 磁盘成为所有磁盘的“主”磁盘读/写。
需要注意的是,我们希望避免仅使用 RAM 缓存操作系统中的文件,但如果我们能够获得与独立 RAM 磁盘相同的性能,那就可以了。我们最初避免了这种情况,因为有时某些文件不会长时间被访问,但仍然需要按需的读/写速度。
我了解LVM是什么以及它完成了什么,但我觉得我错过了一些东西。
假设我们有两个物理驱动器,sda 和 sdb。两者都是 100 兆。我将它们放入 VolumeGroup1 并创建一个 200 兆的 LogicalVolume1。
如果我创建一个 150 兆的文件会发生什么?100 兆物理在 sda 上,50 兆在 sdb 上吗?如果是这样,是什么告诉操作系统文件的一部分在一个驱动器上,而另一块在另一个驱动器上?
驱动故障怎么办?假设没有RAID,如果sdb失败,sda上的数据会不会全部丢失?无论如何要控制哪些文件在哪些物理驱动器上?
您通常如何管理 LVM?您是否创建了一个或两个大的卷组,然后按照合理的方式进行分区?还有其他提示吗?
lvm ×10
linux ×6
filesystems ×3
hard-drive ×2
raid ×2
alignment ×1
centos ×1
dd ×1
encryption ×1
files ×1
flashcache ×1
luks ×1
partition ×1
ramdisk ×1
ssd ×1
storage ×1
ubuntu ×1