Першы рэліз wZD 1.0.0, сервера кампактнага захоўвання дробных файлаў

даступны першы выпуск wZD 1.0.0 - сервера для эфектыўнага захоўвання вялікай колькасці файлаў у кампактным выглядзе, які звонку выглядае як звычайны WebDAV-сервер. Для захоўвання выкарыстоўваецца мадыфікаваная версія BoltDB. Код праекта напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй BSD.

Сервер дазваляе значна скараціць колькасць маленькіх файлаў на звычайных ці кластарных файлавых сістэмах з поўнай падтрымкай блакіровак. Падтрымліваемы распрацоўшчыкамі wZD кластар захоўвае каля 250 мільёнаў дробных файлаў, разнесеных па 15 мільёнам дырэкторый у кластарнай ФС MooseFS.

wZD дае магчымасць перамясціць (архіваваць) змесціва дырэкторый у архівы ў фармаце BoltDB і затым раздаваць гэтыя файлы з гэтых архіваў (ці змяшчаць файлы ў архівы метадам PUT), значна скараціўшы лік файлаў у ФС і знізіўшы накладныя выдаткі на захоўванне метададзеных. Для падвышэння эфектыўнасці апрацоўкі вялікіх файлаў, такія файлы могуць захоўвацца асобна ад Bolt-архіваў. Падобны падыход дазваляе арганізаваць захоўванне велізарнай колькасці дробных файлаў, не ўпіраючыся ў ліміт на лік inode у файлавай сістэме.

Першы рэліз wZD 1.0.0, сервера кампактнага захоўвання дробных файлаў

Сервер таксама можна выкарыстоўваць як NoSQL базу для дадзеных у фармаце ключ/значэнне (з шардынгам на базе структуры дырэкторый) або для раздачы з БД папярэдне згенераваных html або json-дакументаў. Што да прадукцыйнасці, то аддача і запіс дадзеных з выкарыстаннем Bolt-архіваў прыводзіць да павелічэння затрымкі прыблізна на 20-25% пры чытанні і на 40-50% пры запісе. Чым меншы памер файла, тым менш адрозненні ў затрымках.

Першы рэліз wZD 1.0.0, сервера кампактнага захоўвання дробных файлаў

Асноўныя магчымасці:

  • Шматструменнасць;
  • Мультысервернасць, якая забяспечвае адмоваўстойлівасць і збалансаванасць нагрузкі;
  • Максімальная празрыстасць для карыстальніка або распрацоўшчыка;
  • Падтрымліваюцца HTTP-метады: GET, HEAD, PUT і DELETE;
  • Кіраванне паводзінамі пры чытанні і запісы праз кліенцкія загалоўкі;
  • Падтрымка гнутка наладжвальных віртуальных хастоў;
  • Падтрымка CRC-цэласнасці дадзеных пры запісе / чытанні;
  • Паўдынамічныя буферы для мінімальнага спажывання памяці і аптымальнай налады сеткавай прадукцыйнасці;
  • Адкладзенае пакаванне дадзеных;
  • У дадатак прапануецца шматструменны архіватар wZA для перамяшчэння файлаў у Bolt-архівы без прыпынку сэрвісу.

Некаторыя абмежаванні бягучага выпуску: няма падтрымкі Multipart, метаду POST, пратаколу HTTPS, біндзінгаў для моў праграмавання, рэкурсіўнага выдалення дырэкторый, адсутнічае падтрымка мантавання структуры ў файлавую сістэму праз WebDAV ці FUSE, файлы захоўваюцца пад адным сістэмным карыстачом. Фармат захоўвання прывязаны да архітэктуры і не пераносім паміж сістэмамі Little Endian і Big Endian. Нягледзячы на ​​тое, што сервер wZD рэалізуе падтрымку пратаколу HTTP, запускаць яго патрабуецца толькі пад прычыненнем рэверс проксі, такіх як nginx і haproxy.

Крыніца: opennet.ru

Дадаць каментар