状态为REPAIRING的Google Cloud Filestore会阻止*所有*

时间:2019-09-07 17:51:00

标签: google-cloud-platform google-cloud-filestore

我们正在使用Google的Filestore云服务在GCE VM之间共享文件。随机地,所有进程似乎都挂起了,特别是交互式SSH会话,经过调查后,我们确定我们的Filestore(普遍安装在所有VM上)已被修复,并且阻止了所有试图获取任何文件的进程。信息。

我能够以root用户身份登录并进行调查,发现所有交互式活动都将挂起,最终我将其精确定位为试图统计Filestore实例的挂载点。 strace df会像这样挂起:

statfs("/sys/kernel/config", {f_type=0x62656570, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0
stat("/sys/kernel/config", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
statfs("/sys/fs/selinux", {f_type=SELINUX_MAGIC, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0
stat("/sys/fs/selinux", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
statfs("/proc/sys/fs/binfmt_misc", {f_type=BINFMTFS_MAGIC, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0
stat("/proc/sys/fs/binfmt_misc", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
statfs("/dev/hugepages", {f_type=HUGETLBFS_MAGIC, f_bsize=2097152, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=2097152, f_flags=ST_VALID|ST_RELATIME}) = 0
stat("/dev/hugepages", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
statfs("/mnt/local-storage", {f_type=0x58465342, f_bsize=4096, f_blocks=131007745, f_bfree=86129973, f_bavail=86129973, f_files=262143488, f_ffree=262141571, f_fsid={2065, 0}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0
stat("/mnt/local-extra", {st_mode=S_IFDIR|0755, st_size=75, ...}) = 0
statfs("/mnt/shared-storage" ***HANG***

除了等待修复操作完成之外,显然没有任何补救措施。 gcloud filestore operations list当时没有任何操作正在进行。但是gcloud filestore instances list会显示REPAIRING状态,如下所示:

[root@vm ~]# gcloud filestore instances list
INSTANCE_NAME  ZONE            TIER      CAPACITY_GB  FILE_SHARE_NAME  IP_ADDRESS     STATE      CREATE_TIME
shared-storage europe-west1-b  STANDARD  1024         shared_storage   **.**.**.**    REPAIRING  2019-08-09T16:03:02

Google Cloud Status Dashboard从没出现过任何问题。

是否有人知道为什么会发生以及如何防止这种情况发生。如上面的输出所示,我们正在使用Filestore的标准层。

1 个答案:

答案 0 :(得分:0)

我们已经配置了核心转储,以将其从两个虚拟机中写入共享,当我们的进程大量死亡时,似乎我们达到了共享(标准层)的吞吐量限制,这导致了共享进入REPAIRING状态,进而阻止尝试访问它的所有内容。

如果您遇到类似的问题:请检查是否有可能达到共享的吞吐量限制。