[Day6] Virtual Machines

今天要来介绍的是云端的虚拟机器 (VM),属於云端 IaaS 最具有代表的一项产品。相信有许多读者应该都有在自己电脑上使用虚拟机的经验吧?例如 Virtual Box 或 VMWare 等程序,虚拟机在实用上有非常多的优点。

虚拟机的优点

虚拟机最大的优点就是可以与实体机器隔离,做任何的事情都不会影响到原始的机器。除此之外,在假设 Host 电脑的效能与容量足够的前提下,我们也可以随时地变更虚拟机的硬碟大小、CPU大小、硬碟容量等。我们也可以直接针对整台虚拟机的映像(image)档案进行快照(snapshot),作为即时的备份使用。

如果我们有很多台的虚拟机,也可以建立虚拟的网路将他们互相连起来;有关云端的虚拟网路 (VPC),我们会留到明天再跟各位进行介绍。

上述这些虚拟机的优点,无论是地端与云端的设备都可以运用的到,而云端的机器由於是交由服务商进行管理,所以对於正常使用者来说,我们可以视为 host 的机器将近是无限大,想要开多少都没有问题!

vCPU 与 Throughput

一个 vCPU 等同於一个硬体的超值行续 (Hyper-Theread),以目前的 GCP 规定,一台的 VM 最多可以开 96 个 vCPU 。

一个 vCPU 的 网路吞吐量 (throughput) 为 2Gbps。到目前为止,若使用一台大於等於 16颗 vCPU 的装置,其网路的 throughput 最高为 32Gbps。如果开启特殊的虚拟机,例如使用到高级 GPU 的 V4 或是 V100 ,则可以到 100 Gbps。

Storage

虚拟硬碟方面,在 GCP 上面也有几种选择,分别是 Standard 、 SSD 与 Local SSD。不同的硬碟选择,想当然的,就是他们的性能与价格有所差距,大家可以依照自己的需求选择最适合的硬碟解决方案,而这三种硬碟分别的差距如下:

  • Standard
    • 可以理解成普通的电脑机械式硬碟
    • 透过网路连接上 VM
    • 它们的容量可以视需求弹性的增加(只能增加不能减少)
    • 最大值在每台 VM 上可以有 257 个 TB
    • 最便宜
  • SSD
    • 相对於 Standard ,可以有更高的 IOPS
    • 透过网路连接上 VM
    • 也可以在线的增加容量(只能增加不能减少)
    • 最大值在每台 VM 上可以有 257 个 TB
    • 价格其次
  • Local SSD
    • 比起 SSD 有更高的吞吐量,且低延迟
    • 直接硬体的连接在 VM 上
    • 关闭、删除 VM 後,资料就会被删除
    • 通常拿来作为 swap 使用
    • 单颗 Local SSD 最大容量为 375GB
    • 一台 VM 最多可以连结 8 颗 Local SSD

VM Access

通常我们访问云端的 VM 都是藉由网路的方式,在大多数情况下, Linux 的作业系统我们会使用预设为 22 Port 的 SSH,而 Windows 作业系统则会使用预设为 3389 Port 的远端桌面连线 (RDP)。

在 GCP 中,SSH 的连线可以藉由 GCP Console、Cloud Shell 或 Cloud SDK,也可以经由自己习惯的 SSH Client,如 Putty、Moba 等程序。而 RDP 则需要透过 Windows 内建的远端桌面连线,或是其他 RDP 客户端。

预设的机器类型

虽然我们可以完全的克制化自己的 VM,Google 也有准备了许多预设的,常见需求的机器可以供大家选择,使用 Google 预设的机器规格,通常会比自己设定便宜许多。预设的分别为:

  • Standard
    • 标准,提供给最正常的需求使用
    • 通常他的 CPU 与 Memory 会是均衡的
    • 其 RAM 与 CPU 比值为 3.75 GB : 1 vCPU
    • 例如 n1-standard-2 :
      • 2 颗 vCPU 搭载 7.5 GB 的 Ram
    • 最高可到 96 vCPU , 360 GB RAM
  • High-Memory
    • 提供给需要使用 CPU 较少,而 GPU 较多的使用者
    • 其 RAM 与 CPU 比值为 6.5 GB : 1 vCPU
    • 例如 n1-highmem-2
      • 2 颗 vCPU 搭载 13 GB 的 RAM
    • 最高可到 96 vCPU , 624 GB RAM
  • High-CPU
    • 提供给需要使用 Memory 较少,而 CPU 较多的使用者
    • 其 RAM 与 CPU 比值为 0.9 GB : 1 vCPU
    • 例如 n1-highcpu-2
      • 2 颗 vCPU 搭载 1.8 GB 的 RAM
    • 最高可到 96 vCPU , 86.4 GB
  • Memory-optimized
    • 提供给一些 In-Memory 的资料库,例如 SAP、 HANA,以及 SQL 资料分析使用
    • 其 RAM 与 CPU 比值为 >14 GB : 1 vCPU
    • 例如 m1-ultramem-40
      • 40 vCPU 搭载 961 GB RAM
    • 最高可到 160 vCPU , 3844 GB 的 RAM
  • Compute-optimized
    • 主要提供单核 CPU 较高的效能 (最高 3.8Ghz)
    • 例如 c2-standard-4
      • 4 颗 vCPU 搭载 16 GB 的 RAM
    • 最高可到 60 vCPU 搭载 240 GB RAM
  • Shared-core
    • 会跟他人共用 vCPU,适合效能超小的小程序
    • f1-micro : 0.2 vCPU , 0.6 GB RAM
      • 提供突发状况,短期的使用额外的 CPU
    • g1-small : 0.5 vCPU , 1.7 GB RAM

Preemptible Machine

除了常见的机器之外, GCP 也有提供抢占式的机器,相较於普通机器而言,它的价格便宜非常非常多,最低可以便宜到 80%。但抢占式机器有可能在任何时候被强制关机,通常抢占式机器会用来做一些 Batch Process 的工作。它最多只能存活 24小时,而在被关机前 30 秒会警告,提供给使用者执行关机脚本。

Image

GCP 有提供许多不同的 VM Image 供大家使用,包含了各大免费的 Linux 作业系统,以及 Windows 系统。 Windows 系统会依照使用时间收取相关的受权使用费。
使用者也可以上传自己的 Custom Image,而此时,对於这个自己的 Image 的安全性,就是使用者须要自己负责的部分了!

总结

今天介绍了 GCP 的 VM 相关的一些规格与差别,其实 VM 还有许多内容可以谈的,不过碍於时间跟篇幅有限,今天差不多就介绍到这边。预计明天会与大家介绍 VPC 相关的内容。


<<:  [Day_7]资料储存容器 (1) - tuple

>>:  Day 6 : 案例分享(2.2) B2B 网页下单+後台月结+前台付款

[DAY 27] 章节3-7: 对立的鸡群们- k-means(k平均分类演算法) (1/2)

3-7 对立的鸡群们 在飞哥的工作室也待好一阵子的小博,这天在网路上收集资料,以便帮飞哥在报告上有更...

Eloquent ORM - 一对多关联

接着要来给 Todo 加上与 User 的关联,区分各 User 建立的 Todo。 一个 User...

Day16 - 用简单的字串替换实作价值上亿的机器人

线上 Ruby 编辑器:https://runrb.io/ Ruby String 文件:http...

[Day02] swift & kotlin 都我的!双平台史诗级 爱恨纠葛♥

iOS 与 Android 开发语言的爱恨纠葛 竟然要开始学习双平台语言 就让我们一起来了解这两款语...

Gulp Babel ES6 编译(2) DAY84

昨天我们已经介绍 babel编译 与 concat合并成一支档案 但我们还没介绍 Source Ma...