管理实例存储器
实例存储提供快速,经济实惠的临时存储,可提高某些云原生工作负载 (或应用或服务) 的性能。 有关更多信息,请参阅 关于实例存储器。
要向虚拟服务器实例供应实例存储磁盘,请选择包含实例存储器的概要文件。 无法连接或拆离实例存储磁盘设备,因为它们是作为实例概要文件本身的一部分购买的。 通用概要文件系列 (均衡,计算和内存) 和一些专业概要文件系列 (非常高内存和已优化的存储器) 都具有具有实例存储器的概要文件选项。 所有 3rd 代实例概要文件都包含实例存储器。 有关更多信息,请参阅 3rd 代实例概要文件。 根据分配给概要文件的 vCPUs 数量,按比例分配实例存储量。 有关概要文件的更多信息,请参阅 x86-64 实例概要文件。
在控制台中使用实例存储调配虚拟服务器实例
需要先创建 IBM Cloud VPC,然后才能创建具有实例存储器的虚拟服务器实例。
要供应实例存储器,请完成以下步骤:
- 在 IBM Cloud 控制台中,转到 导航菜单 图标
> 基础架构
虚拟服务器实例。
- 在“VPC 的虚拟服务器实例”页面上,单击 创建 并输入所需信息。 有关特定字段的更多信息,请参阅 创建虚拟服务器。
- 要选择实例存储器概要文件,请单击 查看所有概要文件。 所有 ox2 概要文件和概要文件在概要文件名称的第四个位置中具有字母 "d" 的概要文件都包含实例存储器。 包含实例存储器的概要文件的示例为 bx2d-2x8 和 ox2-2x16。 使用复选框来过滤列表。 有关实例概要文件的列表,请参阅 x86-64 实例概要文件。
- 选择要使用的配置文件,然后单击保存。 实例存储磁盘在引导卷之后以及远程 Block Storage 卷 (如果有) 之前连接到虚拟服务器实例。
- 准备好供应实例时,单击 创建虚拟服务器实例。
后续步骤
创建实例后,将浮动 IP 地址与实例关联。 然后,可以连接到该实例。 有关更多信息,请参阅连接到 Linux 实例或连接到 Windows 实例。 如果现有实例具有浮动 IP 地址,那么不需要将第二个浮动 IP 分配给另一个实例。 您可以使用浮动 IP 连接到第一个实例,然后使用自动分配给该实例的专用子网 IP 地址通过 SSH 连接到第二个实例。
使用 CLI 中的实例存储器供应虚拟服务器实例
要使用实例存储器供应虚拟服务器实例,请遵循 使用 CLI 创建虚拟服务器 的指示信息。 选择包含实例存储磁盘的概要文件。 有关概要文件的更多信息,请参阅 实例概要文件。
使用 API 供应具有实例存储器的虚拟服务器实例
要使用实例存储器供应虚拟服务器实例,请遵循 使用 REST API 创建 VPC 资源 的指示信息。 选择包含实例存储磁盘的概要文件。 有关概要文件的更多信息,请参阅 实例概要文件。
API (或 CLI) 对于确定用于连接实例存储磁盘的接口类型很有用。 从创建操作 (或 get) 返回的实例对象报告 disks
数组中的实例磁盘,如以下示例部分输出中所示。
"disks": [
{
"created_at": "2022-04-19T17:13:28Z",
"href": "https://sample-region.iaas.cloud.ibm.com/v1/instances/vsi_aba03916-8804-46ae-9275-b7dc196e94b3/disks/c4e4d137-a44f-47b8-beb0-a22dc8f8c6ea",
"id": "c4e4d137-a44f-47b8-beb0-a22dc8f8c6ea",
"interface_type": "virtio_blk",
"name": "babbling-drove-grove-catnap",
"resource_type": "instance_disk",
"size": 600
}]
此示例显示接口类型 virtio_blk
。
将定制映像与实例存储磁盘配合使用
如果您正在使用定制映像,请确保在映像中装入正确的设备驱动程序以使用磁盘。
如果实例存储设备的接口类型为 virtio_blk
,那么必须安装 libvirt virtio
驱动程序。 libvirt virtio
驱动程序随所有 IBM 提供的操作系统一起自动安装。 具有实例存储器的所有通用概要文件仅提供 virtio_blk
个连接。
从实例使用实例存储器
列出实例上的块设备
在 Linux®上,您可以使用 lsblk
命令在登录到实例后列出块设备。 在以下示例中,供应的实例具有两个 600 GB 实例磁盘和两个 50 GiB 数据卷。 对 lsblk
命令指定了定制列的列表,以突出显示实例存储器与远程 Block Storage之间的一些差异。
实例磁盘以千兆字节 (GB) 为单位进行度量,但 lsblk
以千兆字节 (GiB) 为单位显示大小。
$ lsblk -o NAME,SIZE,MAJ:MIN,TYPE,PHY-SEC,LOG-SEC,MOUNTPOINT
NAME SIZE MAJ:MIN TYPE PHY-SEC LOG-SEC MOUNTPOINT
vda 100G 252:0 disk 512 512
├─vda1 1G 252:1 part 512 512 /boot
└─vda2 99G 252:2 part 512 512
├─cl-root 97G 253:0 lvm 512 512 /
└─cl-swap 2.1G 253:1 lvm 512 512
vdb 558.8G 252:16 disk 4096 4096
vdc 558.8G 252:32 disk 4096 4096
vdd 50G 252:48 disk 512 512
vde 50G 252:64 disk 512 512
vdf 366K 252:80 disk 512 512
vdg 44K 252:96 disk 512 512
在此示例中,所有 Block Storage 设备都是 virtio_blk
设备:
vda
是引导卷。vdb
和vdc
是 600 GB 实例存储磁盘。 在 Linux®中,实例存储磁盘遵循引导卷,第一个是/dev/vdb
。 由于 lsblk 命令将 "G" 单元显示为 base-2 千兆字节,因此大小显示为 558.8 GiBs。 根据操作系统或概要文件的生成,扇区大小列值可能有所不同。 例如,x3d
实例概要文件系列可能会供应本地磁盘的 512 字节扇区大小。vdd
和vde
是连接到实例的远程数据卷。 由于这些数据卷请求的单位与lsblk
显示的单位相同,因此它们的大小保持为整个 GiBs (50)。vdf
和vdg
是用于实例的 cloud-init 配置的小块卷。
使用元数据服务列出实例存储器
可以从实例中使用元数据服务来检索有关实例的信息,包括实例存储磁盘。 要检索元数据信息,必须在供应实例时或之后通过更新实例来启用元数据服务功能。 有关启用和使用过程的更多信息,请参阅 从实例访问元数据。
如果已启用“元数据”服务的实例,那么以下步骤演示了从 Linux 虚拟服务器利用实例存储元数据的示例。
-
检索短期实例身份令牌。
instance_identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/instance_identity/v1/token?version=2024-02-20" -H "Metadata-Flavor: ibm" -H "Accept: application/json" -d '{ "expires_in": 300}' | jq -r '(.access_token)'`
如果启用了安全元数据服务端点,请使用 HTTPS 而不是 HTTP。 在运行 curl 命令之前,你可能需要安装
curl
或jq
软件包。jq
是根据 MIT 许可 授权的第三方工具。 -
使用令牌来获取实例元数据,选择
disks
部分并将 json 存储在 bash 变量中。disks=$(curl -sS -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance?version=2024-02-20" -H "Authorization: Bearer $instance_identity_token" | jq -r '.disks')
-
在
/dev/disk/by-id
中的virtio
设备上循环,并将设备路径与先前步骤中存储的实例磁盘信息相关联。for ln in $(ls /dev/disk/by-id/virtio*); do b=$(basename $ln); s=${b#virtio-}; disk=$(echo $disks | jq -r ".[] | select(.id | startswith(\"$s\"))"); if [ -n "$disk" ]; then echo "$ln $(readlink -f $ln) $(echo $disk | jq -r '(.size|tostring) + " " + .name')";fi;done
以下是先前命令的示例输出,其中列顺序为 (1) by-id path,(2) symlink device target,(3) size in GB,以及 (4) Cloud UI/CLI/API 磁盘名称:
/dev/disk/by-id/virtio-0736-35db69bb-d09b-4 /dev/vdc 600 palmtree-vacuumed-judiciary-wharf
/dev/disk/by-id/virtio-0736-874803ac-2593-4 /dev/vdb 600 lunacy-dismantle-dotted-fiddling
在这种情况下,磁盘名称是随机生成的四字名称,但可以编辑这些名称以具有定制名称。 有关更多信息,请参阅 更新其中一个缺省名称。
分区,格式化和安装实例存储磁盘
实例存储磁盘可以分区,使用文件系统进行格式化,并以与远程块卷相同的方式安装到分层文件系统中。
- 有关 Linux®的指示信息,请参阅 设置 Block Storage for VPC 数据卷以供使用(Linux) 或 使用 cloud-config 脚本配置单个磁盘实例存储器。
- 对于 Windows ®,使用计算机管理 UI 使块卷联机,分区和格式化。 有关更多信息,请参阅 设置 Block Storage for VPC 数据卷以供使用(Windows)。
以下 lsblk
示例显示了在登录到 bx3d-48x240
实例并将 vdc
分区到两个主分区之后,使用单独的文件系统对它们进行格式化并安装这些文件系统的输出。 带有正则表达式的 grep
命令用于仅过滤通过元数据服务获取的 vdb 和 vdc 设备的输出 (请参阅先前部分)。
$ lsblk | grep -E "NAME|vd[b|c]"
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vdb 252:16 0 726.4G 0 disk
vdc 252:32 0 726.4G 0 disk
├─vdc1 252:33 0 200G 0 part /mnt/localdisk1
└─vdc2 252:34 0 526.4G 0 part /mnt/localdisk2
由于实例存储器的临时性质,请使用 nofail
选项在 Linux® VM 的 /etc/fstab
文件中配置安装条目,或者使安装条目完全退出。 此设置可避免在引导期间发生安装故障。
以下示例显示了带有 nofail
选项的安装条目。
/dev/vdb1 /mnt/inststg1 ext4 defaults,nofail 0 0
查找实例概要文件的实例存储器详细信息
过滤实例概要文件时,请在 Web UI 或 CLI 中查找实例存储列。 它可以称为 Storage(GB)
。
以下示例显示可能的列值及其含义:
- 1 x 150 GB-单个 150 GB 块设备连接到实例存储器的虚拟服务器实例。
- 2 x 600 GB-连接两个 600 GB (总计 1200) 实例存储块设备。
在某些上下文中,您可能会看到实例概要文件或连接的实例磁盘的接口类型 (通常为 virtio_blk
)。 以下示例显示从 CLI 获取的特定实例概要文件的详细信息。
$ ibmcloud is in-pr bx2d-48x192
Getting instance profile bx2d-48x192 under account YYYYYY as user vpc-user@myco.com...
Name bx2d-48x192
Architecture amd64
vCPU Manufacturer intel
Family balanced
vCPUs 48
Memory(GiB) 192
GPU Model Manufacturer Count Memory(GiB)
- - - -
Numa Count -
Bandwidth(Mbps) 80000
Volume bandwidth(Mbps) -
Instance Storage Disks Quantity Size Supported interface types
2 900 virtio_blk
Min NIC Count 1
Max NIC Count 10
报告实例存储器信息
您可以使用以下 CLI 示例来报告虚拟服务器实例的实例存储信息。 替换您自己的实例标识或名称。
$ ibmcloud is instance-disks 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488
Listing disks of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID Name Size Interface Type
0716-6ebed02f-c421-4b06-a73b-f334413e84b3 clunky-refocus-tidings-underpaid 600 virtio_blk
0716-54ee0659-d92a-4d4c-ac6b-8f03cb178a07 linguini-epiphany-lush-preschool 600 virtio_blk
更新其中一个缺省名称
您可以使用以下 CLI 命令来更新实例存储磁盘的定制名称。 将您自己的实例标识和磁盘标识分别替换为最后两个参数。
$ ibmcloud is instance-disk-update 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 0716-6ebed02f-c421-4b06-a73b-f334413e84b3 --name my-instance-disk1
Updating instance disk 0716-6ebed02f-c421-4b06-a73b-f334413e84b3 of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID 0716-6ebed02f-c421-4b06-a73b-f334413e84b3
Name my-instance-disk1
Size 600
Interface Type virtio_blk
Created 2020-10-29T22:57:15-05:00
$ ibmcloud is instance-disks 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488
Listing disks of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID Name Size Interface Type
0716-6ebed02f-c421-4b06-a73b-f334413e84b3 my-instance-disk1 600 virtio_blk
0716-54ee0659-d92a-4d4c-ac6b-8f03cb178a07 linguini-epiphany-lush-preschool 600 virtio_blk