AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 398515
Accepted
osij2is
osij2is
Asked: 2012-06-07 09:41:33 +0800 CST2012-06-07 09:41:33 +0800 CST 2012-06-07 09:41:33 +0800 CST

将 ZFS 服务器作为虚拟来宾托管

  • 772

我还是 ZFS 的新手。我一直在使用 Nexenta,但我正在考虑切换到 OpenIndiana 或 Solaris 11 Express。现在,我正在考虑将 ZFS 服务器虚拟化为 ESXi、Hyper-V 或 XenServer 中的来宾(我还没有决定使用哪一个——我倾向于 ESXi 以获得 VMDirectPath 和 FreeBSD 支持)。

主要原因是我似乎有足够的资源可以使用,我可以轻松地同时运行 1-3 个其他 VM。主要是 Windows 服务器。也许还有 Linux/BSD VM。我希望虚拟化 ZFS 服务器托管其他 VM 的所有数据,以便它们的数据可以保存在与 ZFS 磁盘物理上分开的磁盘上(安装为 iscsi 或 nfs)。

该服务器目前有一个 AMD Phenom II,总共有 6 个内核(2 个未锁定)、16GB RAM(已用完)和一个 LSI SAS 1068E HBA,附有 (7) 个 1TB SATA II 磁盘(计划在 RAIDZ2 上使用热备用)。我还有 (4) 个 32GB SATA II SSD 连接到主板。我希望将两个 SSD 镜像到引导镜像(用于虚拟主机),并将另外两个 SSD 留给 ZIL 和 L2ARC(用于 ZFS VM 来宾)。我愿意再添加两个磁盘来存储 VM 来宾并将所有七个当前磁盘分配为 ZFS 存储。注意:主板不支持IOMMU,因为 880G 不支持它,但我有一个 890FX 板,如果它有很大的不同,它确实有 IOMMU。

我的问题是:

1)这样做明智吗?我没有看到任何明显的缺点(这让我想知道为什么没有其他人提到它)。我觉得我可能会犯一个巨大的疏忽,而且我不愿意为此做出承诺,移动我所有的数据只是为了避免我错过的一些细节。

2) ZFS 虚拟来宾性能?我愿意对性能造成小的影响,但我认为如果 VM 来宾对磁盘具有完整的磁盘访问权限,那么至少,磁盘 I/O 性能可以忽略不计(与运行非虚拟化的 ZFS 相比) . 任何人都可以根据作为 VM 来宾托管 ZFS 服务器的经验来谈谈这个吗?

virtualization hardware zfs storage nexenta
  • 1 1 个回答
  • 21489 Views

1 个回答

  • Voted
  1. Best Answer
    ewwhite
    2012-06-14T20:22:54+08:002012-06-14T20:22:54+08:00

    我构建了许多这样的“一体式”ZFS 存储设置。最初受到Ubiquitous Talk上优秀帖子的启发,我的解决方案对硬件设计采用了稍微不同的方法,但产生了封装的虚拟化 ZFS 存储的结果。

    回答你的问题:

    • 确定这是否是明智的方法实际上取决于您的目标。你想达到什么目的?如果您拥有一项技术 (ZFS) 并且正在为其寻找应用程序,那么这不是一个好主意。您最好使用合适的硬件 RAID 控制器并在本地 VMFS 分区上运行您的虚拟机。这是阻力最小的路径。但是,如果您有特定的原因想要使用 ZFS(复制、压缩、数据安全、可移植性等),那么如果您愿意付出努力,这绝对是可能的。

    • 无论您是在裸机上还是在虚拟机上运行,​​性能在很大程度上取决于您的设计。使用PCI 直通(或您的情况下的 AMD IOMMU)是必不可少的,因为您可以让 ZFS VM 直接访问 SAS 存储控制器和磁盘。只要您的 VM 分配了适量的 RAM 和 CPU 资源,性能就接近本机。当然,您的泳池设计很重要。请考虑镜像与 RAID Z2。ZFS可跨 vdev 而不是磁盘数量进行扩展。


    我的平台是VMWare ESXi 5,我首选的支持 ZFS 的操作系统是NexentaStor Community Edition。

    这是我的家庭服务器。它是从内部 SD 卡运行 ESXi的HP ProLiant DL370 G6 。中心的两个镜像 72GB 磁盘链接到内部 Smart Array P410 RAID 控制器并形成一个 VMFS 卷。该卷包含一个 NexentaStor VM。请记住,ZFS 虚拟机需要位于稳定存储的某个位置。

    右侧有一个LSI 9211-8i SAS 控制器连接到容纳六个 1TB SATA 磁盘的驱动器笼。它被传递到 NexentaStor 虚拟机,允许 Nexenta 将磁盘视为 RAID 1+0 设置。这些磁盘是 el-cheapo Western Digital Green WD10EARS驱动器,与修改后的二进制文件正确对齐。zpool

    我在此安装中没有使用 ZIL 设备或任何 L2ARC 缓存。

    在此处输入图像描述

    VM 分配有 6GB RAM 和 2 个 vCPU。在 ESXi 中,如果您使用 PCI-passthrough,将为 VM 分配的 RAM 的全部量创建内存预留。

    我为 NexentaStor VM 提供了两个网络接口。一个是管理流量。另一个是单独的 vSwitch 的一部分,具有 vmkernel 接口(没有外部上行链路)。这允许 VM 通过专用网络提供可由 ESXi 安装的 NFS 存储。您可以轻松添加上行链路接口以提供对外部主机的访问。

    在 ZFS 导出的数据存储上安装新的 VM。请务必在 ESXi 中设置“虚拟机启动/关闭”参数。您希望存储 VM 在来宾系统之前启动并最后关闭。


    在此处输入图像描述

    以下是直接在 NexentaStor VM 上运行的bonnie++和iozone结果。为了测试显示更多相关数字,ZFS 压缩已关闭,但在实践中,应始终启用 ZFS 默认压缩(不是 gzip)。

    # bonnie++ -u root -n 64:100000:16:64

    Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
    Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
    Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
    saint           12G   156  98 206597  26 135609  24   410  97 367498  21  1478  17
    Latency               280ms    3177ms    1019ms     163ms     180ms     225ms
    Version  1.96       ------Sequential Create------ --------Random Create--------
    saint               -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
    files:max:min        /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
        64:100000:16/64  6585  60 58754 100 32272  79  9827  58 38709 100 27189  80
    Latency              1032ms     469us    1080us     101ms     375us   16108us
    

    # iozone -t1 -i0 -i1 -i2 -r1m -s12g

        Iozone: Performance Test of File I/O
    
        Run began: Wed Jun 13 22:36:14 2012
    
        Record Size 1024 KB
        File size set to 12582912 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s12g
        Output is in Kbytes/sec
        Time Resolution = 0.000001 seconds.
        Throughput test with 1 process
        Each process writes a 12582912 Kbyte file in 1024 Kbyte records
    
        Children see throughput for  1 initial writers  =  234459.41 KB/sec
        Children see throughput for  1 rewriters        =  235029.34 KB/sec
        Children see throughput for  1 readers          =  359297.38 KB/sec
        Children see throughput for 1 re-readers        =  359821.19 KB/sec
        Children see throughput for 1 random readers    =   57756.71 KB/sec
        Children see throughput for 1 random writers    =  232716.19 KB/sec
    

    这是一个 NexentaStor DTrace 图表,显示了测试运行期间存储 VM 的 IOPS 和传输速率。4000 IOPS 和 400+ 兆字节/秒对于此类低端磁盘来说是相当合理的。(虽然大块大小) 在此处输入图像描述

    其他注意事项。

    • 您需要测试您的 SSD 以查看它们是否可以直接呈现给 VM,或者 DirectPath 是否选择整个主板控制器。
    • 您没有太多 CPU 能力,因此将存储单元限制为 2 个 vCPU。
    • 除非你真的需要磁盘空间,否则不要使用 RAIDZ1/Z2/Z3。
    • 不要使用重复数据删除。压缩是免费的,对 VM 非常有用。重复数据删除需要更多的 RAM + L2ARC 才能有效。
    • 从没有 SSD 开始,并在必要时添加它们。某些工作负载不会达到 ZIL 或 L2ARC。
    • NexentaStor 是一个完整的包。拥有可靠的管理 GUI 是有好处的,但是,我也听说Napp-It也取得了成功。
    • 38

相关问题

  • 哪些 939 插槽芯片支持 AMD-V?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve