我正在考虑使用具有 2 个节点的 Ubuntu 建立一个私有云,但我不太了解云中如何处理每个节点的磁盘空间。
有人能解释一下如何(以及是否)从云中访问磁盘空间吗?例如,当我有 2 个节点,磁盘空间大小不同,例如 320GB 和 1TB,我可以从两个设备设置“共享存储”吗?
编辑澄清:
目前我有 3 台 Windows 服务器,包括一台域控制器、一台数据库/文件服务器和一台 Web/邮件服务器。我想切换到基于 Ubuntu 服务器的私有云,使用虚拟机实现这些功能,而不是将每台物理服务器专用于某项任务。由于我的数据库和 Web 服务器的可用磁盘空间差别很大,我想知道我是否可以从云中的所有节点管理整个磁盘空间,并使其可访问,类似于在 Windows AD 中使用 DFS 来提供底层使用两台多台服务器的网络共享。
更一般而言,在基于云的基础设施中共享磁盘空间的常见做法是什么?是否只有键/值存储,或者像前面提到的使用网络共享的方案是否可行?
答案1
其实有几种选择。在写这个答案时,我遇到了这个 Xen 页面涵盖了我所说的内容
通过 SAN 实现虚拟块级设备共享Amazon 拥有多组磁盘,这些磁盘通过网络连接到其 EC2 VM,并作为物理磁盘公开。一个驱动器实际上一次只能由一个 VM [安全地] 使用,除非进行快照备份。
您可能会关注 iSCSI 和 nbd 之类的技术。
基于 SAN 的网络文件系统然后还有更传统的 IP 存储方法,如 NFS。由于它们本质上只是另一种文件系统,因此它们对于维护大型存储库而言更加透明,但它们的跨平台性较差(Windows 和 NFS 不能很好地混合使用)。
与块级 SAN 相比,NFS 的明显优势在于您可以让多台计算机同时连接到同一数据。NFS 支持文件锁定和权限,因此您可以进行各种巧妙的共享,而这些共享原本不可能实现。
物理、本地 RAID甚至更传统的方法是将 RAID 阵列插入主机箱并将其分配给本地 VM。许多 VM 提供商仍然这样做,因为这意味着您没有等待爆炸的单块磁盘阵列。
确实会发生这种情况。我有很多VPS 提供商的停机时间因为他们无法可靠地保持其 SAN 在线。