Назад | Перейти на главную страницу

Медленное изменение размера диска во время загрузки на виртуальных машинах с образами Debian 10 Buster на GCP

resize2fs Для изменения размера загрузочного диска 2 ТБ во время загрузки в Debian 10 требуется 90 секунд больше, чем в Debian 9.

Обратите внимание, что время для создания / подготовки экземпляра виртуальной машины (gcloud compute instances create ...) одинакова (около 10 секунд) для Debian 9 и Debian 10, но время до успешного SSH разное (см. while цикл в моей тестовой команде) - это когда виртуальная машина действительно загружается, а не когда gcloud instances create ... возвращается.

Debian 9 image test for 10Gb and 2TB disk sizes - startup time is almost the same (around 1 minute):
$ VM=deb9-10gb; time gcloud compute instances create $VM --image-family=debian-9 --image-project=debian-cloud --boot-disk-size=10GB --machine-type=n1-standard-4 --scopes cloud-platform; date; time (while ! gcloud compute ssh $VM --command="hostname" 2>/dev/null; do date; done); date

Sat 25 Apr 2020 10:49:51 PM PDT
. . .
deb9-10gb

real    1m8.119s
user    0m2.593s
sys 0m0.398s
Sat 25 Apr 2020 10:50:59 PM PDT

$ VM=deb9-2tb; time gcloud compute instances create $VM --image-family=debian-9 --image-project=debian-cloud --boot-disk-size=2TB --machine-type=n1-standard-4 --scopes cloud-platform; date; time (while ! gcloud compute ssh $VM --command="hostname" 2>/dev/null; do date; done); date

Sat 25 Apr 2020 10:51:27 PM PDT
. . .
deb9-2tb

real    0m42.178s
user    0m1.505s
sys 0m0.240s
Sat 25 Apr 2020 10:52:09 PM PDT
Debian 10 image test for 10Gb and 2TB disk sizes - startup time is 90 seconds longer for VM w/ 2TB disk:
$ VM=deb10-10gb; time gcloud compute instances create $VM --image-family=debian-10 --image-project=debian-cloud --boot-disk-size=10GB --machine-type=n1-standard-4 --scopes cloud-platform; date; time (while ! gcloud compute ssh $VM --command="hostname" 2>/dev/null; do date; done); date

Sat 25 Apr 2020 11:01:35 PM PDT
. . .
deb10-10gb

real    1m11.145s
user    0m2.586s
sys 0m0.412s
Sat 25 Apr 2020 11:02:47 PM PDT

$ VM=deb10-2tb; time gcloud compute instances create $VM --image-family=debian-10 --image-project=debian-cloud --boot-disk-size=2TB --machine-type=n1-standard-4 --scopes cloud-platform; date; time (while ! gcloud compute ssh $VM --command="hostname" 2>/dev/null; do date; done); date

Sat 25 Apr 2020 11:03:27 PM PDT
. . .
deb10-2tb

real    2m49.483s
user    0m6.576s
sys 0m1.068s
Sat 25 Apr 2020 11:06:17 PM PDT

Интересно, что сразу после загрузки ВМ tune2fs показывает, что виртуальная машина Debian 10 записала на загрузочный диск 43 ГБ, а Debian 9 только 2 ГБ:

deb9-2tb:~$ sudo tune2fs -l /dev/sda1 | grep "Lifetime writes:"
Lifetime writes:          2183 MB

deb10-2tb:~$ sudo tune2fs -l /dev/sda1 | grep "Lifetime writes:"
Lifetime writes:          43 GB

Я также тестировал это с более новым 1.45.5-2 e2fsprogs версия на Debian 10 (обновлено с buster-backports репо) и Ubuntu 20.04 LTS. Но только виртуальная машина Debian 10 все еще имеет этот регресс, в Ubuntu 20.04 LTS его нет, поэтому кажется, что это проблема, специфичная для Debian 10.

Есть ли какой-либо параметр конфигурации, который позволяет восстановить поведение Debian 9 в Debian 10 для resize2fs во время загрузки ВМ?

Благодаря диагностике в отчет об ошибке e2fsprogs Команда GCE смогла исправить эту проблему в образе GCE Debian 10, и теперь создание виртуальной машины Debian 10 с большими загрузочными дисками происходит так же быстро, как и в Debian 9.

Это исправление включено начиная с debian-10-buster-v20200714 Образ GCE Debian 10.