GSP004

概览
利用 Compute Engine,您可以在 Google 的基础架构上创建并运行虚拟机。您可以创建运行不同操作系统(包括 Debian、Ubuntu、Suse、Red Hat、CoreOS 等多种 Linux 特色版本以及 Windows Server)的虚拟机!
Compute Engine 提供永久性磁盘作为虚拟机实例的主存储设备。与物理硬盘一样,永久性磁盘独立于虚拟机的其他部分存在。即便删除虚拟机实例,其所挂接的永久性磁盘仍将继续保留数据,并可挂接到其他实例。
注意:永久性磁盘有两种类型:
详细了解不同存储选项之间的差异。不同类型的永久性磁盘容量限制不同。如需了解详情,请参阅永久性磁盘文档。
在本实操实验中,您将学习如何创建永久性磁盘并将其挂接到虚拟机。
学习内容
- 创建新的虚拟机实例并挂接永久性磁盘
- 格式化并装载永久性磁盘
前提条件
- 熟悉标准的 Linux 文本编辑器(例如
vim、emacs 或 nano)对完成本实验很有帮助
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
- “打开 Google Cloud 控制台”按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在“实验详细信息”窗格中找到“用户名”。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在“实验详细信息”窗格中找到“密码”。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
-
点击 Google Cloud 控制台顶部的激活 Cloud Shell
。
-
在弹出的窗口中执行以下操作:
- 继续完成 Cloud Shell 信息窗口中的设置。
- 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
- 点击授权。
输出:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (可选)您可以通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南。
设置区域和可用区
- 为本实验设置项目区域和可用区:
gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
gcloud config set compute/region {{{project_0.default_region | Region}}}
- 为区域创建一个变量:
export REGION={{{project_0.default_region | REGION}}}
- 为可用区创建一个变量:
export ZONE={{{project_0.default_zone | Zone}}}
参阅“区域和可用区”文档了解详情。
注意:当您在自己的机器上运行 gcloud 时,不同会话的配置设置保持不变。但在 Cloud Shell 中,您需要为每个新会话或重新建立的连接设置配置。
任务 1. 创建新实例
首先,创建一个只有启动磁盘的 Compute Engine 虚拟机实例。
注意:您可以在其他实验中创建虚拟机实例以了解详情,也可以参阅 Compute Engine 文档。
- 在 Cloud Shell 命令行中,使用
gcloud 命令创建一个名为 gcelab 的新虚拟机实例:
gcloud compute instances create gcelab --zone $ZONE --machine-type e2-standard-2
输出示例:
Created [...].
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
gcelab {{{project_0.default_zone | Zone}}} e2-standard-2 10.240.X.X X.X.X.X RUNNING
新创建的虚拟机实例会将一个默认的 10 GB 永久性磁盘作为启动磁盘。
点击检查我的进度,核查是否完成了以下目标:
在指定可用区中创建新实例。
任务 2. 创建新的永久性磁盘
注意:您要将此磁盘挂接到上一步创建的虚拟机实例,因此必须选择同一可用区。
- 还是在 Cloud Shell 命令行中,使用以下命令创建一个名为
mydisk 的新磁盘:
gcloud compute disks create mydisk --size=200GB \
--zone $ZONE
输出:
NAME ZONE SIZE_GB TYPE STATUS
mydisk {{{project_0.default_zone | Zone}}} 200 pd-standard READY
点击检查我的进度,核查是否完成了以下目标:
在指定可用区中创建新的永久性磁盘
任务 3. 挂接磁盘
挂接永久性磁盘
您可以将磁盘挂接到正在运行的虚拟机。将新磁盘 (mydisk) 挂接到您刚刚创建的虚拟机实例 (gcelab)。
- 使用以下命令挂接磁盘:
gcloud compute instances attach-disk gcelab --disk mydisk --zone $ZONE
输出:
Updated [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-d12e3215bb368ac5/zones/{{{project_0.default_zone | Zone}}}/instances/gcelab].
大功告成!
在相应虚拟机中查找该永久性磁盘
现在,该永久性磁盘已是相应虚拟机实例中的块存储设备。我们一起来看一下。
- 通过 SSH 连接至相应的虚拟机:
gcloud compute ssh gcelab --zone $ZONE
输出:
WARNING: The public SSH key file for gcloud does not exist.
WARNING: The private SSH key file for gcloud does not exist.
WARNING: You do not have an SSH key for gcloud.
WARNING: SSH keygen will be executed to generate a key.
This tool needs to create the directory
[/home/gcpstaging8246_student/.ssh] before being able to generate SSH
keys.
Do you want to continue (Y/n)? y
- 在提示处,输入 Y 以继续。
- 当系统提示您输入 RSA 密钥对口令时,请按 Enter 键以表示不设置口令,然后再次按 Enter 键确认不设置口令。
输出:
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/gcpstaging8246_student/.ssh/google_compute_en
gine.
Your public key has been saved in /home/gcpstaging8246_student/.ssh/google_compute_engine
.pub.
The key fingerprint is:
6c:04:bf:29:95:0d:93:bc:fe:00:2c:85:86:f8:7a:53 gcpstaging8246_student@cs-6000-devshell-v
m-dbb9559d-4412-4801-ad8c-bdaf885541a9
The key's randomart image is:
+---[RSA 2048]----+
| . . ...o. |
|. . o .oo= |
| . . o =.. |
| . E o+.o |
| . . ..oS |
|. o oo |
| . . o |
| . |
| |
+-----------------+
Updating project ssh metadata...\Updated [https://www.googleapis.com/compute/v1/projects/
qwiklabs-gcp-d12e3215bb368ac5].
Updating project ssh metadata...done.
Waiting for SSH key to propagate.
Warning: Permanently added 'compute.7714273689800906026' (ECDSA) to the list of known hosts.
Linux gcelab 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
- 现在,通过列出
/dev/disk/by-id/ 中的磁盘设备来查找该磁盘设备:
ls -l /dev/disk/by-id/
输出:
lrwxrwxrwx 1 root root 9 Feb 27 02:24 google-persistent-disk-0 -> ../../sda
lrwxrwxrwx 1 root root 10 Feb 27 02:24 google-persistent-disk-0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 9 Feb 27 02:25 google-persistent-disk-1 -> ../../sdb
lrwxrwxrwx 1 root root 9 Feb 27 02:24 scsi-0Google_PersistentDisk_persistent-disk-0 -> ../../sda
lrwxrwxrwx 1 root root 10 Feb 27 02:24 scsi-0Google_PersistentDisk_persistent-disk-0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 9 Feb 27 02:25 scsi-0Google_PersistentDisk_persistent-disk-1 -> ../../sdb
您找到了该文件,其默认名称为:
scsi-0Google_PersistentDisk_persistent-disk-1.
注意:若想使用其他设备名称,您可以在挂接磁盘时指定 device-name 参数。例如,如要指定设备名称,您可以在挂接磁盘时使用以下命令:
gcloud compute instances attach-disk gcelab --disk mydisk --device-name <YOUR_DEVICE_NAME> --zone $ZONE
格式化并装载该永久性磁盘
找到相应块存储设备后,您即可对该磁盘进行分区和格式化,然后使用以下 Linux 实用程序装载该磁盘:
- 使用
mkfs: 创建文件系统
- 使用
mount: 挂接到文件系统
- 创建装载点:
sudo mkdir /mnt/mydisk
- 接下来,使用 mkfs 工具将磁盘格式化为单个
ext4 文件系统。此命令会删除指定磁盘中的所有数据:
sudo mkfs.ext4 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1
输出的最后几行如下所示:
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
- 现在,在启用
discard 选项的情况下,使用 mount 工具将该磁盘装载到相应实例:
sudo mount -o discard,defaults /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk
大功告成!
重启时自动装载该磁盘
默认情况下,即便重启虚拟机,系统也不会重新装载磁盘。如需确保在重启时重新装载磁盘,您需要在 /etc/fstab 中添加一个条目。
- 在 nano 中打开
/etc/fstab 以进行编辑:
sudo nano /etc/fstab
- 在以“UUID=...”开头的行的下方,添加以下内容:
/dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk ext4 defaults 1 1
/etc/fstab 的内容应如下所示:
# /etc/fstab: static file system information
UUID=12adc097-f36f-46f9-b377-b2a30cdf422f / ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1
UUID=3A31-89F9 /boot/efi vfat defaults 0 0
/dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk ext4 defaults 1 1
- 依次按 CTRL + O 组合键、Enter 键、CTRL + X 组合键,保存并退出 nano。
点击检查我的进度,核查是否完成了以下目标:
挂接与装载该永久性磁盘。
任务 4. 知识测验
参加本测验,检验您对 Google Cloud Platform 知识的掌握情况。
为将数据从永久性磁盘迁移到另一个区域,请按正确操作顺序重新排列以下步骤:
- 挂接磁盘
- 创建磁盘
- 创建快照
- 创建实例
- 卸载文件系统
任务 5. 本地 SSD
Compute Engine 还可以挂接本地 SSD。本地 SSD 以物理方式挂接到托管虚拟机实例的服务器,而这些虚拟机实例正是这些 SSD 所装载到的对象。这种紧密耦合的设计带来了卓越的性能,与持久化磁盘相比,本地 SSD 可实现极高的每秒输入/输出操作数 (IOPS) 以及极低的延迟。
本地 SSD 性能具有以下优势:
- 延迟时间不到 1 毫秒
- 读取速度高达 680,000 IOPS,写入速度高达 360,000 IOPS
实现这些性能提升需要在可用性、耐用性和灵活性方面做出一定的权衡取舍。由于存在这些权衡因素,本地 SSD 存储设备不会进行自动复制,因此,如果发生主机错误或用户配置错误而导致磁盘无法访问,本地 SSD 上的所有数据都有可能会丢失。用户必须采取额外的预防措施来备份数据。
本实验未涵盖本地 SSD。
- 为了最大限度地提升本地 SSD 的性能,您需要使用支持 NVMe 的特殊 Linux 映像。如需详细了解本地 SSD,请参阅本地 SSD 文档。
恭喜!
您已学习如何创建、查找永久性磁盘并将其挂接到虚拟机实例,同时了解了永久性磁盘与本地 SSD 之间的主要区别。您可以使用永久性磁盘来设置和配置数据库服务器了。
后续步骤/了解详情
Google Cloud 培训和认证
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2024 年 1 月 15 日
上次测试实验的时间:2024 年 1 月 15 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。