>> Т.е., приложение всё-равно запишет, не поняв что была ошибка и данных на >> диске нет? >> В чём тогда разница? > > Я не понимаю про какую разницу вы спрашиваете. > > * zfs set sync=disabled -- означает что "не делать настоящую > гарантированную запись на диск во время вызова fsync", а поместить всё > в буфер и уж когда запишется, тогда и запишется. Программа после fsync > думает что на диске всё есть, но при какой-то поломке/проблеме, то, > что не записалось из буфера, будет потеряно > * вынесенный ZIL но без зеркалирования -- fsync гарантирует что до ZIL > запись дошла, на него записалась, но при поломке, то, что из ZIL не > успело перенестись на диск, будет потеряно. Аналогично sync=disabled, > с той лишь разницей что данные оказались на ZIL накопителе, а не в > памяти > Т.е., в случае sync=disabled, ZIL запишется сразу (на SSD), но на диск данные не будут сброшены?
> Так как ZIL это SSD наверняка всегда, то SSD имеет очень не нулевой шанс > внезапно отказать (а не плавно деградировать как это делают HDD) и, > соответственно, шанс потерять какие-то данные после fsync. Поэтому ZIL > так сильно рекомендуется зеркалировать. > Ok, понял, докуплю вторую SSD. >> Ещё вопрос: есть SSD размером 250 ГБ на который будет установлена >> система (или два SSD), и на которые будет вынесен ZIL. >> Хочу сделать два одинаковых GPT раздела на каждой из SSD. >> На раздел под систему отвести 100 ГБ, под ZIL 150 ГБ. >> Оба раздела будут шифроваться стандартным ZFS шифрованием. >> С первого раздела (миррора) должна грузиться ОС. >> >> Эта конфигурация жизнеспособна? > > Да, проблем или каких-то особенностей тут не вижу. > Вопрос по загрузке возникает. В Linux эта проблема решается через вынесение ядра и initrd с cryptsetup на отдельный раздел. Здесь тоже самое?

