Pull to refresh
8
0
Send message

СБП при оплате товаров нормально работает только при условии нормальной мобильной связи. Когда впереди тебя в очереди какое-нибудь чудо пытается оплатить по QR коду ради нескольких рублей возможного кэшбэка и это чудо пять минут ждет вся очередь, начинаешь тихо ненавидеть эту технологию. А так, кроме C2B, полезно.

Видел когда-то на youtube как программист в ролике быстро писал код (там была 1С). Больше всего вопросов под видео была в духе "как ты это делаешь так быстро?". Народ про кнопки для autocomplete спрашивал. Сейчас ИИ такой autocomplete. Часто обращаюсь к AI для написания скрипта на bash или кода на C или Python. Потом всегда вычитываю и если мне что-то не нравится, прошу переписать такую-то часть используя вот это или вот так. Кто бы и что не говорил, это экономит очень много времени. Не зря же AI уже в IDE вовсю интегрируют. Проверить быстрее чем написать, ИМХО.

У нас с женой еще проще. Я ей заказываю такси, когда она одна, или дочка, или они с дочкой куда-то едут. И да, мне иногда некогда, но так мне спокойнее. Когда приехала, звоню спросить сколько "звезд" поставить таксисту. Мы смотрим в телефоны друг друга только если кто-то из нас хочет что-то показать другому. 25 лет вместе.

Статья не совсем соответствует заголовку. Если нужно уменьшить образ qcow, можно уменьшить его с помощью TRIM не меняя при этом таблицы разделов в VM. Или разделы можно уменьшить потом, в VM, чтобы установить лимит "распуханию" qcow файла. Причем на реальный ресайз образа диска можно не тратить время, размер уже не увеличится сверх размера раздела (разделов). Да и потом легко вернуть, если место таки понадобится.

Для примера, возьмем "распухший" образ диска Windows с двумя разделами в VM (ntfs) и воспользуемся Qemu-NBD:

$ modprobe nbd max_part=8
$ qemu-nbd --discard=unmap --connect=/dev/nbd0 ./VMDisk/WinXP.qcow2
$ partprobe /dev/nbd0

Далее монтируем разделы:

$ mount -o discard,uid=myuser,gid=mygroup /dev/nbd0p1 ./VMDisk/WinXP/part_1
$ mount -o discard,uid=myuser,gid=mygroup /dev/nbd0p2 ./VMDisk/WinXP/part_2

Важно везде использовать discard, где это необходимо.

Теперь используем fstrim:

$ fstrim -v ./VMDisk/WinXP/part_1
/home/user/VMDisk/WinXP/part_1: 16,3 GiB (17550630912 bytes) trimmed
$ fstrim -v ./VMDisk/WinXP/part_2
/home/user/VMDisk/WinXP/part_2: 14,9 GiB (16041938944 bytes) trimmed

Потом размонтируем разделы и используем trim уже на том разделе, где лежит сам qcow.

$ umount ./VMDisk/WinXP/*
$ qemu-nbd --disconnect /dev/nbd0
$ fstrim -v /home/user/VMDisk
/home/user/VMDisk: 36,8 GiB (39544188928 bytes) trimmed

Ну и результат до и после для примера:

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/vg_nvme0-lv_vmfast  215G  211G  4,7G  98% /home/user/VMDisk
-----------------------------------------------------------------------
$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/vg_nvme0-lv_vmfast  215G  177G   39G  83% /home/user/VMDisk

$ du -h --apparent-size WinXP.qcow2
34G	WinXP.qcow2

$ du -h WinXP.qcow2
2,0G	WinXP.qcow2

P.S. После использования TRIM восстановить какие-либо ранее удаленные данные в VM будет невозможно.

Для кого оказалось полезным, поставьте плюс. Хочу понять, насколько имеет смысл в комментах к статьям пятилетней давности выкладывать.

Information

Rating
Does not participate
Registered
Activity

Specialization

Администратор серверов, Системный аналитик
Linux
Виртуализация
PostgreSQL
Администрирование 1С
Mikrotik
Bash
Python
C
Английский язык