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
состояние, в свою очередь блокируя все, что пытается получить к нему доступ.
Если у вас есть аналогичная проблема: проверьте, возможно ли, что вы каким-то образом достигли предела пропускной способности на своей общей папке.