我刚刚构建了一个闪亮的新KVM / libvirt虚拟机主机,包含4个SATA II硬盘,并运行CentOS 5.5 x86_64.

我决定将虚拟机磁盘创建为作为libvirt存储池管理的LVM卷组中的逻辑卷,而不是通常将磁盘创建为qcow映像.

我无法决定是否应在VM主机的卷组或专用卷组中创建虚拟机逻辑卷.

我应该选择哪种方法,为什么?

方法1:使用VM主机的卷组

执行:

>包含/ boot文件系统的小型RAID1 md0
>大型RAID10 md1占用剩余空间,其中包含一个LVM卷组vghost. vghost包含VM主机的根文件系统和交换分区
>根据需要,在vghost中将虚拟机磁盘创建为逻辑卷

优点:

>如果VM主机的根文件系统空间不足,我可以相对轻松地从vghost分配更多空间
>系统已经启动并运行(但重启并不是什么大不了的事)

缺点:

解决这个方法似乎工作的事实,我不能动摇这种感觉,这在某种程度上是一个坏主意.我觉得:

>这可能是某种安全风险
>在未来的某个时刻,我可能会发现设置有一些限制,并希望我使用专用组
>系统(CentOS,libvirt等)可能并非真的被设计为像这样使用,因此在某些时候我可能会意外地损坏/丢失VM主机的文件和/或文件系统

方法2:使用专用卷组

执行:

>与方法1中相同的md0和md1,除了使md1足够大以包含VM主机(例如5到10GB)
>大型RAID10 md2占用剩余空间. md2包含LVM卷组vgvms,其逻辑卷将由虚拟机专用

优点:

>我可以修改vgvms而不用担心破坏主机操作系统
>这似乎是一个更优雅和安全的解决方案

缺点:

>如果VM主机的文件系统空间不足,我将不得不将其部分文件系统(例如/ usr或/ var)移动到vgvms上,这看起来不太好.
>我必须重新安装主机操作系统(如前所述,我真的不介意做)

更新#1:

我担心方法2中的VM主机磁盘空间不足的一个原因是因为我不知道VM主机是否足够强大以运行虚拟机中的所有服务,即.我可能必须将部分/全部服务从虚拟机迁移到主机操作系统.

VM主机硬件规格:

> Phenom II 955 X4黑色版处理器(3.2GHz,4核cpu)
> 2x4GB金士顿PC3-10600 DDR3内存
>技嘉GA-880GM-USB3主板
> 4x WD Caviar RE3 500GB SATA II硬盘(7200rpm)
> Antec BP500U Basiq 500W ATX电源
> CoolerMaster CM 690案例

更新#2:

我觉得系统可能不是设计为在方法1中将主机VG用作libvirt存储池的一个原因是我在virt-manager中注意到的一些行为:

>在添加时,它抱怨它无法激活VG(显然,因为主机操作系统已经激活它)
>删除后,它拒绝这样做,因为它无法停用VG(显然,因为主机操作系统仍在使用root并交换LV)

经过深思熟虑的问题!

我会选择方法2,但这更像是个人偏好.对我来说,方法2缺点不是问题.我没有看到主机操作系统超过其5-10GB分区,除非你开始在其上安装额外的东西,你真的不应该这样做.为了简单和安全起见,主机操作系统确实应该是一个简单的最小安装,除了管理所需的最低限度之外不运行任何东西(例如sshd).

方法1缺点也不是真正的问题,IMO.我不认为会有任何额外的安全风险,因为如果有根的VM能够以某种方式突破其分区并感染/破坏其他分区,那么将主机操作系统放在单独的VG上可能没有任何区别.另外两个缺点不是我可以从直接经验中谈到的东西,但我的直觉说CentOS,LVM和libvirt非常灵活和强大,不用担心它们.

编辑 – 对更新1的响应

目前,虚拟化的性能损失非常低,尤其是使用内置支持的处理器,因此我认为将来自客户虚拟机的服务转移到主机操作系统中并不值得.通过运行“裸机”可能会提高10%的速度,但是您将失去拥有小型,紧凑,安全的主机操作系统的好处,并可能影响整个服务器的稳定性.不值得,IMO.

鉴于此,我仍然赞成方法2.

对更新2的回应

似乎libvirt假设存储的特定方式是另一个有利于方法2的点.我的建议是:使用方法2.

centos – KVM / libvirt主机和来宾之间共享的LVM卷组:这是个坏主意吗?的更多相关文章

  1. XCode 5远程调试OS X应用程序

    我正在使用XCode5.0.2在OSX10.9上开发一个应用程序并获得了一个我无法在这台开发机器上重现的错误报告.但是,我有一个10.7虚拟机出现崩溃,所以我想调试那里没有在这个VM中安装XCode.我搜索了有关远程调试的信息,但我没有得到有用的答案.我甚至担心它根本不受支持.但无论如何我还是要问一下.或者,除了执行完整的XCode安装等之外,还有哪些其他选项来调试这样的问题?

  2. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  3. OpenStack中Swift和cinder区别

    swift是objectstorage,将object存储到bucket里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。

  4. Swift属性观察者在协议扩展?

    换句话说,我可以观察协议扩展中的属性的更改吗?这并不意味着它是不可能实现的,但如果我们有这样的话可能会有点令人惊讶.

  5. 解决Swift 3中缺少递归协议约束的问题

    Swift3目前对“递归协议约束”有一个限制.有一个公开的问题here,在here,here和here有类似的讨论.但是,我仍然没有看到应该如何解决这个限制.可能吗?或者我需要开始引入较不严格的协议,直到在Swift中实现?会出现.然而,通过这种方法,我们可以得到正确的类型,而无需做很多专业化.当然,可以添加更多的协议来获得更多的抽象,但同样的解决方案将会适用.由于某些原因/语言缺陷,您必须在View.foo中分配委托时使用显式转换:viewmodel.delegate=selfas?

  6. Android VM不允许我们分配xx字节

    我正在开发一款安卓游戏.当我尝试使用3张图像作为背景时问题就出现了.图像为1280x720px和100kb大.图像真的不是那么大,所以我有点困惑,为什么它们应该导致内存问题.注意:屏幕分辨率为800×400,因此我无法通过因子2调整图像大小,因为它是suggestedonandroiddeveloper注意:我正在使用HTC欲望手机(这里崩溃来了),我也尝试过在三星galaxyS1和三星上运行正常

  7. 在Android中编译java文件后,注释会发生什么?

    Android编译器如何工作?它是否在编译时删除了Java代码和AndroidXML文件中的注释?

  8. 为什么Android上的每个应用程序都有单独的VM(Dalvik / ART)实例?

    正如标题所述,为什么Android上的每个App都有单独的VM实例?(需要它)如果Android操作系统选择了单个虚拟机运行所有应用程序的模型,会发生什么?解决方法在单个进程中运行多个应用程序不起作用的原因有很多;这是两个:安全区.两个不相互信任的应用程序不应该能够查看彼此的内存,即使它们使用本机代码或反射.失败隔离.如果进程泄漏内存并崩溃,则只会损害自身.

  9. android – 如何选择最佳图像大小不超过VM预算?

    在我的应用用户中,选择图像和程序可让用户对图像进行更改.由于有很多不同的Android设备,我的程序在一些设备上崩溃,这些设备的堆大小较少.我想计算用户手机的最佳尺寸,以免因VM预算而崩溃.我添加了“PicsayPro”的截图,它正是我正在寻找的.我知道“BitmapFactory.Options”我唯一的问题是找到一种方法来决定图像尺寸,这不会因为VM预算而导致应用程序崩溃.解决方法计算手机剩余

  10. Virtualbox上的Android x86中的蓝牙

    解决方法VirtualBox能够共享USB设备.您的蓝牙适配器可能通过USB内部连接也可能不通过USB连接.我有两个Thinkpad,里面都有蓝牙,只有一个在USB上.许多“我想测试我的Android蓝牙应用程序”解决方案中提到的技巧假设您的蓝牙设备使用USB,但是当它没有时它将无法工作.

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部