Size: a a a

2019 November 29

AK

Andrey K in ru_proxmox
ну а что не так? в одном случае гость будет читать блоками по 4к, в другом по 16к, нет?
источник

AK

Andrey K in ru_proxmox
но чтение по 4к у меня по миррорам на разобьётся же, т.к. у дисков и так 4к блоки?
источник

СГ

Сергей Голод in ru_proxmox
смотрите есть размер блока на физическом носителе с которым работает сама ZFS, этот размер определяется параметром ashift при создании пула
источник

AK

Andrey K in ru_proxmox
так, пул создавался с ashift 12
источник

СГ

Сергей Голод in ru_proxmox
желательно чтобы размер этого блока в ZFS совпадал с размером который поддерживается носителем. Раньше это было 9(512 байт), но современные диски поддерживают уже 4096 (это 12).
источник

СГ

Сергей Голод in ru_proxmox
таким образом ZFS работает с физическими носителями блоками по 4096 байт. Переходим уровнем выше - взаимодействие гостевых ОС с файловой системой ZFS
источник

СГ

Сергей Голод in ru_proxmox
ZFS умеет "иммитировать" из себя блочное устройство, и размер блока в этом блочном устройстве задаётся парамтером volblocksize при создании volume. По умолчанию этот размер 8k (8192)
источник

СГ

Сергей Голод in ru_proxmox
далее - есть гостевая ОС, которая это блочное устройство воспринимает как диск и создаёт на нём свою ФС со своим размером. В частности NTFS  по умолчанию создаёт с размером 4096.
источник

СГ

Сергей Голод in ru_proxmox
размер volblocksize влияет на компрессию, чем он ниже - тем хуже компрессия.
источник

AK

Andrey K in ru_proxmox
и при таком раскладе получим 50% потерю иопсов, так?
источник

СГ

Сергей Голод in ru_proxmox
Andrey K
и при таком раскладе получим 50% потерю иопсов, так?
нет. ни о какой потере 50% речь не может идти.
источник

СГ

Сергей Голод in ru_proxmox
у вас диски HDD или SSD?
источник

AK

Andrey K in ru_proxmox
и так и так, но давайте про hdd
источник

AK

Andrey K in ru_proxmox
вот не понимаю в этом месте:
если volblocksize 8k, у гостя юнитсайз 4к, на каждые считанные 4к гостем zfs отдаст ему 8к блок с volume?
источник

AK

Andrey K in ru_proxmox
почему тогда не будет потери производительности?
источник

СГ

Сергей Голод in ru_proxmox
Andrey K
вот не понимаю в этом месте:
если volblocksize 8k, у гостя юнитсайз 4к, на каждые считанные 4к гостем zfs отдаст ему 8к блок с volume?
отдаст 4, а считает с диска 8
источник

СГ

Сергей Голод in ru_proxmox
Andrey K
почему тогда не будет потери производительности?
потому что скорость носителей достаточно высока. по крайне мере для пула из SSD - разницы в volblocksize между 4k и 8к на гостевых виндах я не заметил
источник

AK

Andrey K in ru_proxmox
а как чтение делится по зеркалам (ну или дискам в рейд 5-6)? зависит ли это он volblocksize?
источник

AK

Andrey K in ru_proxmox
тоесть зеркальный пул с volblocksize 4k volblocksize 8k одинаково будут работать?
источник

СГ

Сергей Голод in ru_proxmox
Andrey K
а как чтение делится по зеркалам (ну или дискам в рейд 5-6)? зависит ли это он volblocksize?
это уже делает zfs в зависимости от ashift. если он = 12 то будет читать по 4к с разных дисков для ускорения чтения
источник