Популяризиране на Bcachefs в ядрото на Linux

Кент Овърстрийт, авторът на системата за кеширане на блокови устройства BCache SSD, която е част от ядрото на Linux, обобщи резултатите от работата по популяризиране на файловата система Bcachefs в речта си на конференцията LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit). в основния състав на ядрото на Linux и говори за плановете за по-нататъшното развитие на тази FS. През май беше предложен актуализиран набор от корекции с внедряването на Bcachefs FS за преглед и включване в основния състав на ядрото на Linux. FS Bcachefs се развива от около 10 години. Готовността за преглед на внедряването на Bcachef преди включването в ядрото беше обявена в края на 2020 г., а текущата версия на пачовете взема предвид коментарите и недостатъците, идентифицирани по време на предишния преглед.

Целта на разработката на Bcachefs е да се достигне нивото на XFS по отношение на производителност, надеждност и мащабируемост, като същевременно се предоставят допълнителни функции, присъщи на Btrfs и ZFS, като например включване на множество устройства в дял, оформление на многослойно съхранение, репликация (RAID 1/10), кеширане, прозрачно компресиране на данни (режими LZ4, gzip и ZSTD), срезове на състоянието (моментни снимки), проверка на целостта чрез контролни суми, възможност за съхраняване на кодове за коригиране на грешки на Reed-Solomon (RAID 5/6), криптирано съхранение на информация (ChaCha20 и Poly1305) са използвани). По отношение на производителността Bcachefs изпреварва Btrfs и други файлови системи, базирани на механизма Copy-on-Write, и демонстрира производителност, близка до Ext4 и XFS.

От най-новите постижения в развитието на Bcachef се отбелязва стабилизирането на внедряването на моментни снимки, достъпни за писане. В сравнение с Btrfs, моментните снимки в Bcachefs вече са много по-добре мащабируеми и свободни от проблемите, присъщи на Btrfs. На практика работата на моментните снимки беше тествана при организиране на резервни копия на MySQL. Bcachefs също свърши много работа за подобряване на мащабируемостта - файловата система се представи добре при тестване в 100 TB хранилище и се очаква Bcachefs да бъде внедрено в 1 PB хранилище в близко бъдеще. Добавен е нов режим nocow за деактивиране на механизма "copy-on-write" (nocow). През лятото те планират да приведат внедряването на кодове за коригиране на грешки и RAIDZ в стабилно състояние, както и да разрешат проблеми с висока консумация на памет при възстановяване и проверка на файлови системи с помощната програма fsck.

От плановете за бъдещето се споменава желанието за използване на езика Rust в разработката на Bcachefs. Според автора на Bcachefs той обича да кодира, а не да дебъгва код и сега е лудост да се пише код на C, когато има по-добър вариант. Rust вече участва в Bcachefs при внедряването на някои от помощните програми за потребителското пространство. Освен това се излюпва идеята за постепенно пълно пренаписване на Bcachefs в Rust, тъй като използването на този език значително спестява време за отстраняване на грешки.

Що се отнася до преместването на Bcachefs в основния поток на ядрото на Linux, процесът на приемане може да се забави поради големия размер на промените (2500 кръпки и около 90 хиляди реда код), който е труден за преглед. За да се ускори прегледът, някои разработчици предложиха да се раздели серията корекции на по-малки и по-логично разделени части. По време на дискусията някои участници също обърнаха внимание на разработването на проекта от един разработчик и опасността кодът да остане неподдържан, ако нещо се случи с неговия разработчик (двама служители на Red Hat се интересуват от проекта, но работата им все още ограничени корекции на грешки).

Bcachefs е разработен с помощта на вече тествани технологии при разработването на блоковото устройство Bcache, предназначено да кешира достъпа до бавни твърди дискове на бързи SSD дискове (включено в ядрото от версия 3.10). Bcachefs използва механизма Copy-on-Write (COW), при който промените не водят до презаписване на данните - новото състояние се записва на ново място, след което индикаторът за текущо състояние се променя.

Характеристика на Bcachefs е поддръжката на многослойно свързване на дискове, при което съхранението е съставено от няколко слоя - най-бързите дискове (SSD) са свързани към долния слой, които се използват за кеширане на често използвани данни, а горният слой формира по-вместими и по-евтини дискове, които съхраняват по-малко търсени данни. Кеширането при обратен запис може да се използва между слоевете. Устройствата могат динамично да се добавят и отделят от дял, без да се прекъсва използването на файловата система (данните мигрират автоматично).

Източник: opennet.ru

Добавяне на нов коментар