Google Cloud Filestore в статусе REPAIRING блокирует * все *

Мы используем облачный сервис Google Filestore для обмена файлами между нашими виртуальными машинами GCE. Случайным образом кажется, что все процессы зависают, особенно интерактивные сеансы SSH, и после некоторого расследования мы определили, что наше хранилище файлов, универсально подключенное ко всем виртуальным машинам, ремонтировалось и блокировало все процессы, которые пытались получить какую-либо информацию о нем.

Я смог войти в систему как root и исследовать, я заметил, что все мои интерактивные действия зависают, и в конечном итоге я определил, что это попытка установить точку монтирования экземпляра Filestore. Anstrace 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 ответ

Мы настроили coredump для записи в общий ресурс с двух дюжин виртуальных машин, когда происходит массовое отключение наших процессов, кажется, что мы достигаем предела пропускной способности общего ресурса (стандартный уровень), и это приводит к тому, что общий ресурс входит в REPAIRING состояние, в свою очередь блокируя все, что пытается получить к нему доступ.

Если у вас есть аналогичная проблема: проверьте, возможно ли, что вы каким-то образом достигли предела пропускной способности на своей общей папке.

Другие вопросы по тегам