#11
|
|||
|
|||
Re: ashift на древней bsd
Eugene Grosbein написал(а) к Alex Korchmar в Jan 18 21:33:46 по местному времени:
20 янв. 2018, суббота, в 19:10 NOVT, Alex Korchmar написал(а): AK>>> странная идея - gptzfsboot разьве до сих пор не научился грузиться с AK>>> зеркал? EG>> Научился (чего там учиться-то), но ZFS не зеркалирует таблицу разделов EG>> и начальный загрузчик, а мне надо. AK> хм, а вручную скопировать при появлении в поле зрения нового диска, типа, AK> сложнее, Разбиение может быть достаточно сложным, копировать его надо уметь, тот код, который изначально был установлен для загрузки в области вне файловых систем, может быть уже и недоступен, когда потребуется срочно заменить вышедшую из строя чать зеркала. AK> чем вот эти все наслоения с КПД в два процента? EG>> В итоге MBR, загрузчики и систему мне синхронизирует graid, EG>> а всё остальное ZFS. И диски могут быть любого размера, EG>> хоть по 6TB. AK> что-то мне подсказывает, что это писец неэффективный метод доступа к диску. Да с чего бы? Внутри ядра это просто вложенные вызовы C-функций, уж в случае НDD (и даже SSD) стоимость I/O несравнима с. Eugene --- slrn/1.0.2 (FreeBSD) |
#12
|
|||
|
|||
Re: ashift на древней bsd
Eugene V. Boontseff написал(а) к Eugene Grosbein в Jan 18 18:45:12 по местному времени:
From: "Eugene V. Boontseff" <eugene@home.wdc.spb.ru> Нello, All! On 20.01.2018 16:31, Eugene Grosbein wrote: > 20 янв. 2018, суббота, в 10:51 NOVT, Alex Korchmar написал(а): > > AK>>> vfs.zfs.minautoashift оно еще не отрастило. > EG>> vfs.zfs.minautoashift есть даже в девятке, начиная с r266123 > AK> это, видимо, бэкпорт. > > Само собой. > > EG>> У тебя там 8.x что ли? > AK> 10какая-то непоследняя. > > С 10.0 оно должно быть. > С 10.1 всё-таки -- Eugene --- ifmail v.2.15dev5.4 |
#13
|
|||
|
|||
Re: ashift на древней bsd
Alex Korchmar написал(а) к Eugene Grosbein в Jan 18 18:51:43 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote: AK>> что-то мне подсказывает, что это писец неэффективный метод доступа к AK>> диску. EG> Да с чего бы? Внутри ядра это просто вложенные вызовы C-функций, а не копирование ли блока данных, причем максимально неэффективное из-за разных размеров обрабатываемого блока? EG> уж в случае НDD (и даже SSD) стоимость I/O несравнима с. то-то мы изобрели sendfile пятнадцать лет назад, когда диски были медленнее чуть не вдвое... > Alex --- ifmail v.2.15dev5.4 |
#14
|
|||
|
|||
Re: ashift на древней bsd
Eugene Grosbein написал(а) к Alex Korchmar в Jan 18 23:27:13 по местному времени:
20 янв. 2018, суббота, в 19:51 NOVT, Alex Korchmar написал(а): AK>>> что-то мне подсказывает, что это писец неэффективный метод доступа к AK>>> диску. EG>> Да с чего бы? Внутри ядра это просто вложенные вызовы C-функций, AK> а не копирование ли блока данных, причем максимально неэффективное из-за AK> разных размеров обрабатываемого блока? В случае томов SINGLE или RAID1 - нет, тут задачей graid является просто пересчет аргументов и передача запроса дальше нужному geom_disk'у по правильному смещению. EG>> уж в случае НDD (и даже SSD) стоимость I/O несравнима с. AK> то-то мы изобрели sendfile пятнадцать лет назад, когда диски были медленнее AK> чуть не вдвое... Ну там-то как раз боролись и с лишними переключениями контекста, и с лишними копированиями, а тут ничего этого нет. Eugene --- slrn/1.0.2 (FreeBSD) |
#15
|
|||
|
|||
Re: ashift на древней bsd
Eugene Grosbein написал(а) к Alex Korchmar в Jan 18 14:56:56 по местному времени:
20 янв. 2018, суббота, в 19:10 NOVT, Alex Korchmar написал(а): EG>> В итоге MBR, загрузчики и систему мне синхронизирует graid, EG>> а всё остальное ZFS. И диски могут быть любого размера, EG>> хоть по 6TB. AK> что-то мне подсказывает, что это писец неэффективный метод доступа к диску. Забыл ещё сказать, что отделение загрузочного пула позволяет включать на другом пуле checksum=skein вместо sha. Из zpool-features(7): It provides a very high security margin and high performance on 64-bit hardware (80% faster than SНA-256). Booting off of pools using skein is NOT supported. Eugene --- slrn/1.0.2 (FreeBSD) |
#16
|
|||
|
|||
Re: ashift на древней bsd
Alex Korchmar написал(а) к Eugene Grosbein в Jan 18 19:49:22 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote: EG> Забыл ещё сказать, что отделение загрузочного пула позволяет EG> включать на другом пуле checksum=skein вместо sha. Из zpool-features(7): о, это интересно. Правда, подозреваю, загрузчик кто-нибудь в ближайшее время поправит (интересно, зачем ему вообще что-то знать о каких-то контрольных суммах, да еще на уровне пула, а не отдельной fs) но это для хранилок, пожалуй, оставлю. > Alex --- ifmail v.2.15dev5.4 |
#17
|
|||
|
|||
Re: ashift на древней bsd
Alex Korchmar написал(а) к Eugene Grosbein в Jan 18 23:01:13 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote: AK>> поправит (интересно, зачем ему вообще что-то знать о каких-то контрольных AK>> суммах, да еще на уровне пула, а не отдельной fs) EG> Для загрузчика несходимость контрольной суммы означает, EG> что это место надо пропустить при поиске загрузочного пула. хмм... однобитовый патч? ;-) > Alex --- ifmail v.2.15dev5.4 |
#18
|
|||
|
|||
Re: ashift на древней bsd
Eugene Grosbein написал(а) к Alex Korchmar в Jan 18 20:03:06 по местному времени:
23 янв. 2018, вторник, в 23:01 NOVT, Alex Korchmar написал(а): AK>>> поправит (интересно, зачем ему вообще что-то знать о каких-то контрольных AK>>> суммах, да еще на уровне пула, а не отдельной fs) EG>> Для загрузчика несходимость контрольной суммы означает, EG>> что это место надо пропустить при поиске загрузочного пула. AK> хмм... однобитовый патч? ;-) Не понял реплики. Вот имеем мы пусть даже просто загрузочный зеркальный пул. До старта ядра у загрузчика есть только сервисы BIOS/[U]EFI, для простоты будем называть просто BIOS. Оно загружает с одного из дисков MBR и передаёт управление в код, который там лежит. Этот код, как и любой код, использующий сервисы BIOS, может читать диски, ссылаясь на них как на BIOS disk 0 (тот, с которого загружен сам), BIOS disk 1 и т.д., в терминах фрёвого загрузчика это disk0 и disk1. В случае BootEasy (/boot/boot0) в MBR этот код либо находит активный раздел и читает с него первый сектор, либо читает MBR с BIOS disk 1 (в зависимости от настроек и/или выбора юзера с консоли) и передаёт туда управление, что в случае ZFS в итоге приводит к запуску zfsboot, которому всё так же доступны disk0, disk1. zfsboot не знает, с которого диска и которого раздела его прочитали. Он "обнюхивает" доступные диски и разделы в поисках сигнатур и суперблоков ZFS и если видит что-то похожее на ZFS, но контрольная сумма данных не сходится - разумно пропускает и ищет дальше, потому как это мог быть и нестойко читающийся soft bad и лучше бы начать грузить zfsloader с другого компонента. zfsloader имеет в себе уже гораздо более богатый по возможностям код, который тем не менее всё ещё может использовать только сервисы BIOS, но ему уже передаются уникальные id того пула ZFS и файловой системы на нём, с которого его прочитал zfsboot. Он тоже "обнюхивает" доступные диски и разделы, находит на них компоненты указанного пула, выбирая нужный пул по id и читает данные с ZFS и если контрольная сумма не сходится, то имеет возможность попробовать другой компонент зеркального пула. В случае с GPT вместо MBR отличие только в последовательности запуска загрузчиков до старта zfsloader, а дальше всё то же самое. Eugene -- Choose no career --- slrn/1.0.2 (FreeBSD) |
#19
|
|||
|
|||
Re: ashift на древней bsd
Alex Korchmar написал(а) к Eugene Grosbein в Jan 18 19:08:04 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote: AK>> хмм... однобитовый патч? ;-) EG> Не понял реплики. JNZ / JZ ? EG> zfsboot не знает, с которого диска и которого раздела его прочитали. EG> Он "обнюхивает" доступные диски и разделы в поисках сигнатур и суперблоков EG> ZFS и если видит что-то похожее на ZFS, но контрольная сумма данных EG> не сходится - разумно пропускает и ищет дальше, потому как это мог быть хотя вполне вероятно что его самого только что именно с такого и загрузили. EG> и нестойко читающийся soft bad и лучше бы начать грузить zfsloader EG> с другого компонента. ну а если другого не находится - чего бы и не? EG> В случае с GPT вместо MBR отличие только в последовательности EG> запуска загрузчиков до старта zfsloader, а дальше всё то же самое. там gtpzfsboot. Которому незачем укладываться в размеры всяких крохотных зарезервированных областей, и который вполне можно снабдить интеллектом хотя бы на уровне "если вообще никакие контрольные суммы не сходятся - попробовать первый попавшийся". Странно, что этого до сих пор не сделано, но уж точно можно просто отключить ему излишний "ум", чтобы не проверял то, что не умеет считать. > Alex --- ifmail v.2.15dev5.4 |
#20
|
|||
|
|||
Re: ashift на древней bsd
Eugene Grosbein написал(а) к Alex Korchmar в Jan 18 21:33:36 по местному времени:
20 янв. 2018, суббота, в 10:54 NOVT, Alex Korchmar написал(а): AK>>> был же какой-то фокус с gnop? EG>> Он стал не нужен ещё в девятке, ЕМНИП, после того как EG>> в geom добавили достаточно интеллекта специально для того, EG>> тобы gnop стал не нужен. А ZFS у нас в любом случае живет AK> там, помнится, надо было не добавлять, а убавлять - чтобы он у диска не AK> спрашивал то, о чем диск - врет. Возможно, ты имеешь в виду ручные квирки? В /usr/src/sys/cam/ata/ata_da.c есть такое: typedef enum { ADAQNONE = 0x00, ADAQ4K = 0x01, ADAQ_NCQ_TRIMBROKEN = 0x02, ADAQ_LOGBROKEN = 0x04, ADAQ_SMRDM = 0x08 } ada_quirks; И в том же файле ниже: static struct adaquirk_entry ada_quirktable[] = { { / Нitachi Advanced Format (4k) drives / { TDIRECT, SIP_MEDIAFIXED, "", "Нitachi Н??????????E3*", "" }, /quirks/ADAQ4K }, { / Samsung Advanced Format (4k) drives / { TDIRECT, SIP_MEDIAFIXED, "", "SAMSUNG НD155UI*", "" }, /quirks/ADAQ4K }, И если твоего диска нет в этой таблице, то в loader.conf можно прописать: # 4K sectors kern.cam.ada.0.quirks="1" Это нужно только на момент создания пула ZFS. Eugene -- Поэты - страшные люди. У них все святое. --- slrn/1.0.2 (FreeBSD) |