创建可用区级存储分区

区域存储桶(通过 Rapid 存储桶 提供)为需要特定地理区域内数据的应用提供高性能、 低延迟的存储。

本页面介绍了如何执行以下操作:

在可用区中创建存储桶

准备工作

如果您尚未获取创建存储桶所需的角色,请先获取。

控制台

  1. 在 Cloud de Confiance 控制台中,转到 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 点击 创建。
  3. 在创建存储桶 页面上,输入您的存储桶信息。完成以下每个步骤后,点击 继续 以继续执行下一步:

    1. 在开始使用 部分中,执行以下操作:

    2. 在选择存储数据的位置 部分中,执行以下操作:

      1. 选择可用区 作为位置类型。

      2. 使用位置类型的下拉菜单选择一个 位置 ,用于永久存储存储桶中的对象数据。

    3. 在选择数据存储方式 部分中,系统会默认选择 Rapid Storage 存储类别 。

    4. 在选择如何控制对对象的访问权限 部分中,执行以下操作:

      1. 选择您的存储桶是否强制执行 禁止公开访问。

      2. 选择统一 ,以便为存储桶启用统一存储桶级访问权限。

      3. (可选)为存储桶配置 IP 过滤。

    5. 在选择如何保护对象数据 部分中,执行以下操作:

      • 如需选择对象数据的加密方式,请点击标有数据加密的展开箭头,然后执行以下操作:

        • 在默认加密密钥类型 部分中,选择存储桶的默认加密密钥 。如果您选择 Cloud KMS 密钥,请提供 Cloud Key Management Service 密钥。
        • 在加密强制执行规则 部分中,对于密钥类型,请选择 允许或限制存储桶中新对象的加密类型。
  4. 点击 创建 。

命令行

  1. 在 Cloud de Confiance 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。 Cloud de Confiance Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境 。该会话可能需要几秒钟来完成初始化。

  2. 在开发环境中,运行 gcloud storage buckets create 命令:

    gcloud storage buckets create \
    gs://BUCKET_NAME --location=BUCKET_LOCATION --placement=BUCKET_ZONE \
    --default-storage-class=RAPID --enable-hierarchical-namespace --uniform-bucket-level-access

    将

    • BUCKET_NAME 替换为您要为自己的 存储桶指定的名称(须遵循 命名要求),例如 rapid-storage-bucket。

    • BUCKET_LOCATION 替换为 存储桶区域。 例如 us-east1。

    • BUCKET_ZONE 替换为您要将存储桶放置在哪个可用区, 例如 us-east1-b。

    如果请求成功,该命令将返回以下消息:

    Creating gs://rapid-storage-bucket/...

使用 Cloud Storage FUSE 装载区域存储桶

准备工作

本部分假设您已拥有 Cloud Storage FUSE 的访问权限。如果您 尚未拥有,请执行以下前提条件步骤:

  1. 安装 Cloud Storage FUSE。 请确保安装 Cloud Storage FUSE 3.4.0 版或更高版本。
  2. 对 Cloud Storage FUSE 请求进行身份验证。
  3. 如果您没有创建要装载的存储桶, 请获取所需的角色 以装载存储桶。

如需使用 Cloud Storage FUSE 装载区域存储桶,请使用以下命令:

mkdir MOUNT_POINT
gcsfuse BUCKET_NAME MOUNT_POINT

将

  • MOUNT_POINT 替换为要将存储桶装载到的本地目录, 例如 $HOME/example-bucket。

  • BUCKET_NAME 替换为要装载的存储桶的名称。

例如,以下命令会将名为 example-rapid-storage-bucket 的存储桶装载到 source-bucket 装载点:

mkdir $HOME/source-bucket
gcsfuse example-rapid-storage-bucket $HOME/source-bucket

如果您想将对象从现有存储桶转移到区域存储桶,请装载这两个存储桶,然后使用 cp 命令转移对象。

使用 FIO 测试评估性能基准

如需评估区域存储桶的速度基准,请运行 FIO 测试。

Google Kubernetes Engine

以下命令会将配置应用于您的 Google Kubernetes Engine 集群,该集群针对 Cloud Storage 存储桶运行 FIO 测试。存储桶 使用适用于 GKE 的 FUSE CSI 驱动程序装载到容器的文件系统。

$ cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: fio
  namespace: default
  annotations:
    gke-gcsfuse/volumes: "true"
spec:
  containers:
  - name: fio
    image: mayadata/fio
    command: ["/bin/ash", "-c", "--"]
    args:
    - |
      fio --name=read_latency_test --filename=/data/fio --filesize=1G --time_based=1 --ramp_time=10s --runtime=1m --ioengine=libaio --direct=1 --verify=0 --randrepeat=0 --bs=4K --iodepth=1 --rw=randread --disable_slat=1 --disable_clat=1 --lat_percentiles=1 --numjobs=1
    volumeMounts:
    - name: fio-bucket
      mountPath: /data
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: topology.kubernetes.io/zone
            operator: In
            values:
            - ZONE_NAME
  serviceAccountName: default
  volumes:
  - name: fio-bucket
    csi:
      driver: gcsfuse.csi.storage.gke.io
      volumeAttributes:
        bucketName: "BUCKET_NAME"
        gcsfuseLoggingSeverity: warning
  restartPolicy: Never
EOF

其中:

  • ZONE_NAME 是存储桶所在的可用区, 例如 us-east4-a。

  • BUCKET_NAME 是您的存储桶的名称,例如 my-bucket。

如果测试成功,它会输出类似于以下内容的响应:

$ kubectl logs fio
Defaulted container "fio" out of: fio, gke-gcsfuse-sidecar (init)
read_latency_test: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.36
Starting 1 process

read_latency_test: (groupid=0, jobs=1): err= 0: pid=11: Mon Mar  3 20:38:14 2025
  read: IOPS=591, BW=2365KiB/s (2422kB/s)(139MiB/60001msec)
    lat (usec): min=867, max=181966, avg=1685.32, stdev=2695.84
    lat percentiles (usec):
    |  1.00th=[  1074],  5.00th=[  1188], 10.00th=[  1254], 20.00th=[  1336],
    | 30.00th=[  1401], 40.00th=[  1467], 50.00th=[  1549], 60.00th=[  1614],
    | 70.00th=[  1713], 80.00th=[  1844], 90.00th=[  2057], 95.00th=[  2278],
    | 99.00th=[  3064], 99.50th=[  3654], 99.90th=[  8717], 99.95th=[ 73925],
    | 99.99th=[131597]
  bw (  KiB/s): min= 1290, max= 2736, per=100.00%, avg=2365.51, stdev=244.10, samples=120
  iops        : min=  322, max=  684, avg=591.34, stdev=61.10, samples=120
  cpu          : usr=0.81%, sys=1.61%, ctx=36011, majf=0, minf=36
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
    submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    issued rwts: total=35473,0,0,0 short=0,0,0,0 dropped=0,0,0,0
    latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  READ: bw=2365KiB/s (2422kB/s), 2365KiB/s-2365KiB/s (2422kB/s-2422kB/s), io=139MiB (145MB), run=60001-60001msec

Compute Engine 虚拟机

以下说明会在 Compute Engine 虚拟机上运行 FIO 测试。

  1. 使用 Cloud Storage FUSE 装载 Rapid Storage:
mkdir $HOME/rapid-mnt
gcsfuse --max-retry-attempts=5 <bucket-name> PATH

将

  • PATH 替换为您要将存储桶装载到的本地文件系统路径。
  1. 如果您尚未安装 FIO,请先安装:
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install fio -y
  1. 运行示例 FIO 读取延迟时间测试:
fio --name=read_latency_test \
  --filename=BUCKET_PATH/1G --filesize=1G \
  --time_based=1 --ramp_time=10s --runtime=1m \
  --ioengine=libaio --direct=1 --verify=0 --randrepeat=0 \
  --bs=4K --iodepth=1 --rw=randread --numjobs=1

将

  • BUCKET_PATH 替换为您装载的存储桶的路径。

如果测试成功,它会输出类似于以下内容的响应:

read_latency_test: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.33
Starting 1 process
Jobs: 1 (f=1): [f(1)][100.0%][eta 00m:00s]
read_latency_test: (groupid=0, jobs=1): err= 0: pid=78399: Tue Feb 11 21:14:35 2025
  read: IOPS=622, BW=2490KiB/s (2550kB/s)(146MiB/60001msec)
    slat (usec): min=108, max=13857, avg=1596.92, stdev=243.32
    clat (nsec): min=1539, max=141717, avg=5872.92, stdev=3230.74
    lat (usec): min=112, max=13866, avg=1602.80, stdev=244.13
    clat percentiles (nsec):
    |  1.00th=[ 2960],  5.00th=[ 3856], 10.00th=[ 4320], 20.00th=[ 4704],
    | 30.00th=[ 4896], 40.00th=[ 5088], 50.00th=[ 5280], 60.00th=[ 5536],
    | 70.00th=[ 5856], 80.00th=[ 6240], 90.00th=[ 7072], 95.00th=[ 8512],
    | 99.00th=[21120], 99.50th=[26240], 99.90th=[40704], 99.95th=[51968],
    | 99.99th=[75264]
  bw (  KiB/s): min= 2024, max= 2672, per=100.00%, avg=2491.15, stdev=105.69, samples=120
  iops        : min=  506, max=  668, avg=622.77, stdev=26.41, samples=120
  lat (usec)   : 2=0.06%, 4=6.21%, 10=89.91%, 20=2.61%, 50=1.15%
  lat (usec)   : 100=0.05%, 250=0.01%
  cpu          : usr=0.67%, sys=1.79%, ctx=37361, majf=0, minf=37
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
    submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    issued rwts: total=37355,0,0,0 short=0,0,0,0 dropped=0,0,0,0
    latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  READ: bw=2490KiB/s (2550kB/s), 2490KiB/s-2490KiB/s (2550kB/s-2550kB/s), io=146MiB (153MB), run=60001-60001msec

使用 Storage Transfer Service 转移数据

您可以使用 Storage Transfer Service 在区域存储桶和 其他 Cloud Storage 存储桶之间转移数据。

所需权限

在 Cloud Storage 存储桶之间转移数据需要 无代理转移权限中列出的 IAM 角色 。

此外,由于区域存储桶使用 分层命名空间,因此必须向 Storage Transfer Service 服务代理授予以下 IAM 权限:

  • 当来源是区域存储桶时:

    • 使用 无代理转移权限中列出的预定义角色时,无需执行其他操作。 必要的权限 (storage.folders.list) 已包含在 Storage Object Viewer (roles/storage.objectViewer) 角色中。
  • 当目标是区域存储桶时:

    • 您必须向服务代理授予 Storage Object User (roles/storage.objectUser) 角色。这会提供所需的 storage.folders.create 权限。

如需了解如何向服务代理添加角色,请参阅:

限制

  • 支持的转移:

    • 支持在区域存储桶与任何其他 Cloud Storage 位置(包括其他区域存储桶)中的存储桶之间转移数据。
  • 不支持的功能:

    • 事件驱动型转移
    • 跨存储桶复制
    • 基于代理的转移
  • 未最终确定的对象:

    • 从区域存储桶转移未最终确定的对象时,目标存储桶中的数据可能无法反映在转移过程中对对象所做的更改。
    • 未最终确定的源对象在目标存储桶中标记为已最终确定。

创建传输作业

如需了解使用入门,请参阅使用 Storage Transfer Service 创建传输作业。

后续步骤