创建可用区级存储分区

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

  • 创建具有区域级位置的存储桶。

  • 使用 Cloud Storage FUSE 将区域级存储桶装载到本地文件系统。

  • 转移数据,使用 Storage Transfer Service 在现有存储桶和区域级存储桶之间转移数据。

在区域中创建存储桶

准备工作

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

控制台

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

    进入“存储桶”

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

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

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

      1. 选择区域 作为位置类型

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

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

    4. 选择如何控制对对象的访问权限 部分中,选择 存储桶是否强制执行 禁止公开访问,然后为存储桶 对象选择访问权限控制模型

    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 存储:
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 创建传输作业

后续步骤