访问 700 多个实验和课程

如何创建永久性磁盘

实验 30 分钟 universal_currency_alt 1 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP004

Google Cloud 自学实验的徽标

概览

利用 Compute Engine,您可以在 Google 的基础架构上创建并运行虚拟机。您可以创建运行不同操作系统(包括 Debian、Ubuntu、Suse、Red Hat、CoreOS 等多种 Linux 特色版本以及 Windows Server)的虚拟机!

Compute Engine 提供永久性磁盘作为虚拟机实例的主存储设备。与物理硬盘一样,永久性磁盘独立于虚拟机的其他部分存在。即便删除虚拟机实例,其所挂接的永久性磁盘仍将继续保留数据,并可挂接到其他实例。

注意:永久性磁盘有两种类型:

  • 标准永久性磁盘
  • SSD 永久性磁盘
详细了解不同存储选项之间的差异。不同类型的永久性磁盘容量限制不同。如需了解详情,请参阅永久性磁盘文档

在本实操实验中,您将学习如何创建永久性磁盘并将其挂接到虚拟机。

学习内容

  • 创建新的虚拟机实例并挂接永久性磁盘
  • 格式化并装载永久性磁盘

前提条件

  • 熟悉标准的 Linux 文本编辑器(例如 vimemacsnano)对完成本实验很有帮助

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 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 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

设置区域和可用区

  1. 为本实验设置项目区域和可用区:
gcloud config set compute/zone {{{project_0.default_zone | Zone}}} gcloud config set compute/region {{{project_0.default_region | Region}}}
  1. 为区域创建一个变量:
export REGION={{{project_0.default_region | REGION}}}
  1. 为可用区创建一个变量:
export ZONE={{{project_0.default_zone | Zone}}}

参阅“区域和可用区”文档了解详情。

注意:当您在自己的机器上运行 gcloud 时,不同会话的配置设置保持不变。但在 Cloud Shell 中,您需要为每个新会话或重新建立的连接设置配置。

任务 1. 创建新实例

首先,创建一个只有启动磁盘的 Compute Engine 虚拟机实例。

注意:您可以在其他实验中创建虚拟机实例以了解详情,也可以参阅 Compute Engine 文档
  1. 在 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. 创建新的永久性磁盘

注意:您要将此磁盘挂接到上一步创建的虚拟机实例,因此必须选择同一可用区。
  1. 还是在 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)。

  1. 使用以下命令挂接磁盘:
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].

大功告成!

在相应虚拟机中查找该永久性磁盘

现在,该永久性磁盘已是相应虚拟机实例中的块存储设备。我们一起来看一下。

  1. 通过 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
  1. 在提示处,输入 Y 以继续。
  2. 当系统提示您输入 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.
  1. 现在,通过列出 /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: 挂接到文件系统
  1. 创建装载点:
sudo mkdir /mnt/mydisk
  1. 接下来,使用 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
  1. 现在,在启用 discard 选项的情况下,使用 mount 工具将该磁盘装载到相应实例:
sudo mount -o discard,defaults /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk

大功告成!

重启时自动装载该磁盘

默认情况下,即便重启虚拟机,系统也不会重新装载磁盘。如需确保在重启时重新装载磁盘,您需要在 /etc/fstab 中添加一个条目。

  1. 在 nano 中打开 /etc/fstab 以进行编辑:
sudo nano /etc/fstab
  1. 在以“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
  1. 依次按 CTRL + O 组合键、Enter 键、CTRL + X 组合键,保存并退出 nano。

点击检查我的进度,核查是否完成了以下目标:

挂接与装载该永久性磁盘。

任务 4. 知识测验

参加本测验,检验您对 Google Cloud Platform 知识的掌握情况。

为将数据从永久性磁盘迁移到另一个区域,请按正确操作顺序重新排列以下步骤:

  1. 挂接磁盘
  2. 创建磁盘
  3. 创建快照
  4. 创建实例
  5. 卸载文件系统

任务 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 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。