分类目录问题答疑

25 个 SmartX 用户社区高频提问:产品功能、技术原理与运维操作

SmartX 于 2020 年成立了线上用户社区——一个由 SmartX 专家和来自各行业的工程师组成的,以现代化 IT 基础架构为核心方向,集学习、技术探讨、个人成长为一体的交流平台。成立两年至今,用户社区已发展至 4 个大群,累计服务 1600+ 用户,群内每天都会产生近百条经验分享和问题讨论,同时不间断地开展直播课与成长营活动。

为什么缓存盘还要 2 块呢?一读一写吗?

SMTX OS 社区版支持配置一块/两块 SSD 作为缓存盘并不是因为需要去隔读和写缓存,每一块缓存盘都可以同时作为读、写缓存,配置两块 SSD 的目的主要是解决系统和缓存的高可用的问题。在实际使用中, SSD 故障是一个常见问题,而 SMTX OS 配置 2 块 SSD 作为缓存,可容忍任意一块 SSD 故障,另外一块 SSD 依然可以承担节点的缓存加速功能(只是缓存容量减少了)。另外值得注意一点:SMTX OS 缓存盘支持全局磁盘加速,并不是基于磁盘组做缓存加速。因此在单个 SSD 故障的场景下,缓存功能既不会失效,也不会引起部分数据存储空间下线的问题(磁盘组发生 SSD 故障,全组磁盘会同时下线)。

如果 SMTX OS 集群里只有两节点,在节点都正常的情况下,能选举成功吗? 两节点集群下,挂一个节点后,可以不要求继续工作,是否支持?

首先说明一点: SMTX OS 标准集群是 3 节点或以上的,社区版虽然可支持部署 2 节点,但仅用于体验(允许后续扩展为 3 节点),正式使用必须是 3 节点或以上的。当集群只有 2 节点,集群能正常工作,能选举成功,但不支持高可用。一旦 2 节点再挂 1 个节点,整个集群就无法提供服务。

如果集群有多个节点,每个节点存储容量都小于某个虚拟机的存储容量,但集群总存储容量足够进行数据恢复和多副本。在这种情况下,本节点宕机后,虚拟机是否能(通过 HA)自动恢复运行?

可以恢复,虚拟机磁盘的容量由 SMTX ZBS 分布式块存储提供,即使每个节点的磁盘容量都小于当前虚拟机磁盘容量,但只要多副本之后的容量大于虚拟机磁盘容量就可以,只是会影响 I/O 本地化,当节点宕机时,虚拟机可以在其他节点拉起。

SmartX 的热迁移是怎么实现的?采用 post copy 还是 pre copy?如果是 pre copy,针对脏页数据多时有明显的迁不动问题,你们有针对的优化处理的方案吗?

并不是采用的 post-copy,而是采用 pre-copy + auto converge 的方式进行虚拟机热迁移。您提到的问题,主要是因为两个原因导致的,一个是脏页生成速度太快,另外一个是由于带宽不足,所以导致内存复制速度赶不上脏页的生成速度。我们专门为大内存虚拟机在线迁移做了优化:
1. 在线迁移默认会自动选择存储网络(要求 10G 或以上网络)执行以保证传输带宽。

针对大内存虚拟机,而且是比较繁忙的虚拟机,支持有一种自动调节功能,当脏页的生成速度过快,自动调整 CPU 降低脏页生成速度,直到生成速度控制在阈值以内,限制就会取消。(迁移过程中对虚拟机的性能是有影响的)

以 NVMe SSD 支持 vSAN 或者 ZBS 会比 SATA SSD 的性能好多少?

我们没有 NVMe 运行 vSAN 平台的相关数据。但针对 SMTX OS 有相关的测试对比:其中以 NVMe SSD 作为缓存的集群要比 SATA SSD 集群的性能更好,但同时需要更好的网络才可以充分发挥(一般 NVMe SSD 推荐搭配 25G 的 RDMA 网络),通常情况下能达到 SATA SSD 集群的性能 2 倍或以上,但在不同测试用例可能有所偏差。

超融合架构下,网络交换机是如何部署的?需要多少台交换机?

在部署超融合集群时,一般划分为 3 组网络,分别为管理网络、存储网络、业务网络。这三组网络既可以分别接入三组不同的交换机,也可以是共用交换机(通过 vlan 隔离不同的网络),但前提是每一组交换机都是支持高可用(使用 2 台交换机配置堆叠或者虚拟化)。3 组网络完全独立的方案(高规格,隔离性好),每组由 2 台交换机组成高可用,那么是共需 6 台。如果考虑合并管理网络和业务网络在同一组交换机,存储网络独立的方案(常用规格,隔离性中等),则需要 4 台。

超融合用的系统盘和缓存盘,一般是读取型,还是读写型?

SSD 主要分读密集型、写密集型和混合密集型三种:读密集型 SSD 一般采用较低水平的配置,并使用相对不太耐用的闪存单元,具有较低的写入耐磨度,当然成本也会相对低廉。 混合型 SSD 相比读密集型更耐用,配置更大的替换数据块。而写入密集型的固态硬盘则是最昂贵的固态硬盘,其性能好,写入寿命比较长。具体使用那种硬盘,需要视乎实际业务的需求,而超融合集群中的 SSD 通常作为缓存,写入操作是比较频繁的,考虑到性能和可靠性,建议是使用混合型或者写入密集型 SSD 作为缓存。

请问 SmartX 标准版支持通过 NFS 异地备份吗?我本地到异地专线只有10M 带宽可以支持吗?是备份整个虚拟机吗?我可以选择只备份数据吗?

SMTX OS 标准版可以搭配 SMTX 备份与恢复组件,将虚拟机备份到异地的 NFS 异地的 NFS 存储设备。10M 的带宽可以支持,带宽高低会影响备份和还原的速度。SMTX 备份与恢复组件是对虚拟机进行整机备份,不提供数据文件的单独备份。如有文件备份需求也可以考虑第三方的备份软件。

如果从 Intel VMware 虚拟化平台迁移至海光 SmartX 虚拟化平台呢?兼容性有没有已知问题?

目前我们可以通过 SMTX 迁移工具,将 VMware 集群的虚拟机迁移到 SmartX 超融合集群(基于海光信创硬件)。一般情况下,虚拟机迁移完成后可正常运行;但由于 CPU 平台改变,不排除有部分应用可能出现兼容问题,建议对应用程序做一些必要的检查和测试之后才正式上线使用。

部署 SMTX OS 时会校验缓存盘和数据盘是否存在坏道吗?

一般情况下,部署过程中并不会提前校验 HDD 的坏道,或者 SSD 的寿命(SSD 没有坏道的概念)等信息。但部署过程中由于磁盘故障导致分区等操作无法完成,那么系统会提示相应的报错。实际上,在集群初始化完成后,系统会对硬盘进行监控,可自动发现慢盘(频繁出现 I/O 延时过大),坏盘(频繁发生 I/O error )以及剩余读写寿命较短的 SSD ,针对硬盘异常情况及时发出告警和隔离。

SmartX 超融合通过快速克隆创建虚拟机,(其原理)是链式克隆吧?后台会异步断链成完整克隆的镜像吗?

通过快速克隆创建的虚拟机,特性上有点类似链式克隆,但并不完全一样。快速克隆完成后,数据如果不发生变化,克隆出来的虚拟机与原有虚拟共享数据块,不额外占用空间。当数据发生变化后,克隆虚拟机会拥有独立的数据块,最终通常会与源虚拟机完全独立。

双活集群下,优先可用域没有足够计算资源的情况下,会尝试在次级可用域拉起虚拟机是吧?例如:优先可用域有 3 个节点,故障了 1 个节点,但是剩余 2 个节点计算资源不足够。这个时候会在次级可用域的节点上拉起虚拟机吗?

虚拟机开启了 HA 并且没有配置虚拟机放置组策略要求虚拟机必须在优先可用域中的主机运行的情况下,虚拟机在优先可用域计算资源不足的情况下,可在次级可用域中拉起。

IO 本地化会带来的空间利用率/性能不均衡问题是怎么解决的?Nutanix 是通过移动少量的实时使用的 extent 来平衡,SmartX 是怎么做的?

SMTX OS 也有内置的数据平衡功能,它会根据节点存储容量负载情况自动执行数据迁移,确保一定程度保持数据平衡。但数据本地化策略依然是优先的策略,当系统发现节点容量过高,它会优先尝试迁移非本地虚拟机非活跃的数据副本以维持数据容量均衡。SMTX OS 的数据平衡也是以 extent 为单位执行数据迁移的。

请问一下,部署 SMTX OS 集群是否可以刚开始使用一块 SSD 作为缓存,后面再扩另外一块?

部署 SMTX OS 集群要求所有正式环境每个节点至少配置两块 SSD 作为缓存盘(同时承担系统盘作用), 2 块 SSD 可确保支持缓存盘和系统的高可用。如果在集群初始化的时候只配置一块 SSD 作为缓存盘,后续扩展至 2 块 SSD 可扩展缓存空间,但依然无法支持故障切换的功能。因此建议在集群初始化的时候就为每个节点配置 2 块 SSD。

安装 Everoute 之后,在集群资源充足的情况下,CloudTower 为什么提示 HA 资源不足告警?

因为在 3 节点集群上部署 Everoute,默认会部署 3 个 Everoute Controller,虚拟机分别放置在 3 个不同节点上,以确保 Everoute 服务的高可用。而触发该告警的原因是:系统发现当集群中任意 1 个节点故障, 该节点上的 Everoute Controller 本应通过 HA 功能在其他可用节点中恢复,但由于集群可用节点只剩下 2 个,无法保证 3 个 Everoute Controller 分别运行在不同节点,因此系统提示 HA 资源不足。在大于 3 节点的集群不会触发该报警,但由于社区版最大规模是 3 节点,因此一定会触发该告警,但不会影响日常使用。

SMTX OS 安装 Windows 虚拟机时需要加载 virtio 硬盘驱动,但 PVE 就不需要安装 virtio 驱动?

PVE 在安装类型为 Windows 的虚拟机时,默认使用 IDE 磁盘总线,而不是性能更好的 virtio 总线(Windows 光盘中不带 virtio 驱动),因此,PVE 在安装 Windows 操作系统时并不需要额外加载 virtio 驱动。而 SMTX OS 安装虚拟机的时候默认会选用性能更好的 Virtio 总线,因此需要额外加载驱动。

如果要对集群进行维护、更换硬件需要进行什么流程?需要手动迁移虚拟机然后直接关机吗?开机后是不是等集群恢复了,再继续弄下一台?

对节点进行硬件维护可以为节点开启维护模式(仅支持 3 节点或以上规模集群)后进行。SMTX OS 商业版可在 CloudTower 上操作,但社区版当前版本未支持该功能,需要手工执行以下步骤:

登录任意节点执行 sudo sh/ usr/ share/ upgrade/ upgrade_cluster/ script/ pre_check.sh,输出 pre check success 则预检查通过;如预检查失败,则需要根据提示处理之后再次进行检查;
将待维护节点上的虚拟机执行在线迁移至其他节点;
登录待维护节点,执行 sudo shutdown -h now,进行下电维护处理;
维护完成后,重新开启节点,等待集群状态恢复正常后(如有数据恢复,需等待数据恢复完成),回迁虚拟机;
如果有多个节点需要维护,需要依次按照前面的步骤执行。

通过 Fisheye 创建的网络有办法更换为 CloudTower 创建的么?

Fisheye 属于集群紧急管理页面,不应通过它去创建虚拟网络。日常操作应在 CloudTower 上进行。如果已经通过  Fisheye 创建了虚拟网络,可先将该虚拟网络关联的虚拟机移出,或调整到其他虚拟网络(该操作可能引起虚拟机网络中断)。清空虚拟网络后,可通过 Fisheye 界面删除该虚拟网络。然后再通过 CloudTower 新创建对应的虚拟网络,并将之前的虚拟机重新关联到该网络即可。

系统警告存储平均延时过大,一般要查哪些因素呢?

触发存储平均延时过大警告一般有两个可能性:1. 某块磁盘(或者对应的磁盘控制器)发生故障了,导致访问延时增大,这种情况可以查看系统是否有磁盘健康相关的警告并作进一步的处理;2. 缓存空间比例过小,部分热数据无法在缓存命中。这种情况下可通过监控分析菜单查看集群的缓存命中率,如果缓存命中率持续偏低,则需要考虑扩展缓存空间。

SmartX 的时间同步是先由集群的 leader 与 NTP Server 通讯并同步,然后 leader 负责内部节点时间同步的机制吧? 那虚拟机迁移取的是硬件时间还是 SMTX OS 的系统时间?

SMTX OS 的 NTP 服务可以应对两种场景:

场景1:

有外部 NTP 服务源的情况下,leader 负责与外部 NTP 服务器同步时间,然后集群中其他节点与 leader 进行同步进而确保整个集群所有节点的时间都是同步的。而在线迁移或者数据同步都会依赖这个时间的。

场景2: 

如果没有外部 NTP 服务器,那么 leader 不会跟外部进行同步,其他节点会跟 leader 同步时间,也可以保证整个集群的时间是一致的,但无法保证与标准时间是同步的。

关于 SmartX 公司

为企业构建易用、可靠、随需扩展的数据中心基础架构,满足企业的 IT 应用需求,是 SmartX 的使命和存在的价值。

进一步了解

在 SmartX 工作

SmartX 以独有的价值观吸引着一群热爱创造的人们相聚于此,共同打造坚实、稳固的 IT 基础架构。SmartX 欢迎你!

查看工作机会