MinIO - выдатнае рашэнне, калі трэба лёгка і проста арганізаваць аб'ектнае сховішча. Элементарная настройка, мноства платформаў і добрая прадукцыйнасць зрабілі сваю справу на ніве народнага кахання. Так што ў нас не было іншага шляху, як месяц таму заявіць аб сумяшчальнасці Veeam Backup & Replication і MinIO. Уключаючы такую важную функцыю, як Immutability. Насамрэч у MinIO ёсць цэлы раздзел у дакументацыі, прысвечаны нашай інтэграцыі.
Таму сёння мы пагаворым аб тым, як:
Наладзіць MinIO вельмі хутка.
Наладзіць MinIO крыху менш хутка, але значна якасней.
Выкарыстоўваць яго ў якасці Archive Tier для маштабуецца рэпазітара Veeam SOBR.
Што ты такое?
Кароткая ўступная для тых, хто не сутыкаўся з MinIO. Гэта апенсорснае аб'ектнае сховішча, сумяшчальнае з Amazon S3 API. Выпускаецца пад ліцэнзіяй Apache v2 і прытрымліваецца філасофіі спартанскага мінімалізму.
Гэта значыць у яго няма раскідзістага GUI з дашбордамі, графікамі і шматлікімі меню. MinIO проста запускае свой сервер адной камандай, на якім можна проста захоўваць дадзеныя, выкарыстоўваючы ўсю моц S3 API. Але трэба заўважыць, што прастата гэтая можа быць зманлівая, калі гаворка заходзіць аб выкарыстоўваных рэсурсах. RAM і CPU паглынаюцца на выдатна, але аб прычынах будзе ніжэй. І, дарэчы сказаць, такія камбайны, як FreeNAS і TrueNAS пад капотам выкарыстоўваюць менавіта MinIO.
На гэтым увядзенне можна і заканчваць.
Настройка MinIO вельмі хутка
Настройка яго настолькі хуткая, што мы разгледзім яе для Windows і Linux. Ёсць варыянты і для докера, і для кубернетысу, і нават для макосі, але сэнс усюды будзе аднолькавы.
Такім чынам, у выпадку Windows ідзем на афіцыйны сайт https://min.io/download#/windows і пампуем апошнюю версію. Тамсама назіраем інструкцыю па запуску:
minio.exe server F:Data
І там жа спасылка на крыху больш за разгорнуты Кароткае кіраўніцтва па пачатку работы. Інструкцыі не верыць сэнсу няма, таму запускаем і атрымліваем прыкладна такі адказ.
На гэтым усё! Сховішча працуе і можна пачынаць з ім працаваць. Я не жартаваў, калі казаў, што MinIO - гэта мінімалізм і проста працуе. Калі прайсці па прапанаванай пры запуку спасылцы, то максімум даступных там функцый - гэта стварыць бакет. І можна пачынаць пісаць дадзеныя.
Для аматараў лінуксаў усё застаецца не менш простым. Найпростая інструкцыя:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
Вынік будзе неадрозны ад бачанага раней.
Настройка MinIO крыху больш асэнсаваная
Як мы разумеем, папярэдні абзац - гэта пястота для тэставых мэт. І, скажам сапраўды, менавіта для тэставання MinIO у нас выкарыстоўваецца вельмі шырока, у чым нам цалкам не сорамна прызнацца. Вядома, яно працуе, але далей тэставых стэндаў выносіць такое сорамна. Таму бярэм у рукі напільнік і пачынаем даводзіць да розуму.
HTTPS
Першы абавязковы крок на шляху да прадакшэну – шыфраванне. У сетцы ўжо ёсць мільён і тысяча мануалаў па даданні сертыфікатаў да MiniIO, але агульны план у іх такі:
Ствараем сертыфікат
У выпадку Windows кладзем яго ў C:Users%User%.miniocerts
У выпадку Linux у ${HOME}/.minio/certs
Перазапускаем сервер
Банальны Let's Encrypt – гэта сумна і апісана ўсюды, так што наш шлях – гэта шлях самурая, таму ў выпадку Windows спампоўваем Cygwin, а ў выпадку Linux проста правяраем, што ў нас усталяваны openssl. І робім крыху кансольнай магіі:
Капіяваны private.key і public.crt у тэчку, паказаную вышэй
Перазапускаем MinIO
Калі ўсё прайшло як трэба, то ў статуце з'явяцца прыкладна такія радкі.
Уключаем MinIO Erasure Coding
Перш пара слоў пра сабжа. У двух словах: гэта праграмная абарона даных ад пашкоджання і страты. Як рэйд, толькі нашмат надзейней. Калі класічны RAID6 можа дазволіць сабе страціць два дыскі, то MinIO спакойна перажывае страту паловы. Больш дэталёва тэхналогія апісана ў афіцыйным гайдзе. Але калі ўзяць самую сутнасць, то гэта рэалізацыя кодаў Рыда-Саламона: уся інфармацыя захоўваецца ў выглядзе блокаў дадзеных, да якіх ёсць блокі цотнасці. І накшталт гэта ўсё ўжо было зроблена шмат разоў, толькі ёсць важнае "але": мы можам відавочна паказваць суадносіны блокаў цотнасці да блокаў дадзеных для захоўваемых аб'ектаў.
Жадаеце 1:1? Калі ласка!
Жадаеце 5:2? Без праблем!
Вельмі важная функцыя, калі вы выкарыстоўваеце адразу некалькі нод і хочаце знайсці свой уласны баланс паміж максімальнай бяспекай дадзеных і затрачаных рэсурсаў. Са скрынкі MinIO выкарыстоўвае формулу N/2 (дзе N - агульная колькасць дыскаў), г.зн. дзеліць вашыя дадзеныя паміж N/2 дыскамі дадзеных і N/2 дыскамі цотнасці. Перакладаючы на чалавечую: можна страціць палову дыскаў і аднавіць дадзеныя. Гэтыя суадносіны задаецца праз Клас захоўвання, дазваляючы вам самастойна абраць, што важней: надзейнасць ці ёмістасць.
У гайдзе прыведзены такі прыклад: выкажам здагадку, што ў вас усталёўка на 16 дыскаў і вам трэба захаваць файл памерам 100 Мб. Калі выкарыстоўваюцца налады па змаўчанні (8 дыскаў пад дадзеныя, 8 пад блокі цотнасці), то файл у выніку зойме практычна падвойны аб'ём г.зн. 200 Мб. Калі стаўленне дыскаў будзе 10/6, тое спатрэбіцца 160 Мб. 14/2 - 114 Мб.
Іншае важнае адрозненне ад рэйдаў: у выпадку выпадзення дыскаў MinIO будзе працаваць на ўзроўні аб'ектаў, аднаўляючы адзін за адным, не спыняючы працу ўсёй сістэмы. У той час як звычайны рэйд будзе змушаны аднаўляць увесь volume, што зойме непрадказальную колькасць часу. На памяці аўтара дыскавая палка, якая пасля выпадзення двух дыскаў пайшла на пералік на паўтара тыдня. Было вельмі непрыемна.
І, важная заўвага: MinIO дзеліць усе дыскі для Erasure Coding на сэты ад 4х да 16ці дыскаў, выкарыстоўваючы максімальна магчымы памер сэта. І ў далейшым, адзін элемент інфармацыі будзе захоўвацца толькі ў межах аднаго сэта.
Гучыць усё гэта вельмі выдатна, але наколькі складанай будзе настройка? Давайце паглядзім. Бярэм каманду для запуску і проста пералічваем дыскі, на якіх трэба стварыць сховішча. Калі ўсё зроблена дакладна, то ў рэпарце ўбачым колькасць задзейнічаных дыскаў. І рада, што нядобра на адзін хост дадаваць адразу палову дыскаў, бо гэта да страты дадзеных.
c:minio>minio.exe server F: G: H: I: J: K:
Далей для кіравання і налады MinIO сервера нам запатрабуецца агент, спампаваць які можна ўсё там жа з афіцыйнага сайта.
Каб не сціраць пальцы, кожны раз набіраючы адрас і ключы доступу (ды і небяспечна гэта), зручна пры першым запуску адразу стварыць alias па формуле mc alias set [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY]
mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKE
Ці ж можна адразу дадаць ваш хост:
mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEY
-debug дазваляе бачыць не проста выніковае паведамленне, а больш разгорнутую інфармацыю.
-l значыць -with-lock, што значыць immutable
Калі зараз вярнуцца ў вэб інтэрфейс, то тамака з'явіцца наш новы бакет.
На дадзены момант гэта ўсё. Мы стварылі абароненае сховішча і гатовы пераходзіць да інтэграцыі з Veeam.
Можна яшчэ пераканацца, што ўсё працуе на выдатна:
c:minio>mc admin info veeamS3
● 172.17.32.52:9000
Uptime: 32 minutes
Version: 2020-08-16T18:39:38Z
Network: 1/1 OK
Drives: 6/6 OK
0 B Used, 1 Bucket, 0 Objects
6 drives online, 0 drives offline
MinIO і Veeam
Увага! Калі па нейкай з неверагодных прычын вы хочаце працаваць праз HTTP, то па адрасе HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication стварыце DWORD ключ SOBRArchiveS3DisableTLS. Выставіце яго значэнне ў 1 і падушыце, што мы такія паводзіны рашуча не ўхваляем і нікому не раім.
Увага яшчэ раз! Калі з-за нейкага непаразумення вы працягваеце выкарыстоўваць Windows 2008 R2, то пры спробе падлучыць MinIO да Veeam вы хутчэй за ўсё атрымаеце прыкладна такую памылку: Failed to establish connection to Amazon S3 endpoint. Лечыцца гэта афіцыйным патчам ад Microsoft.
Ну што ж, з падрыхтоўкамі скончана, давайце адкрыем інтэрфейс VBR і пяройдзем на ўкладку Backup Infrastructure, дзе выклічам майстар дадання новага рэпазітара.
Само сабой, цікавіць нас Object storage, а менавіта S3 Compatible. У які адкрыўся візардзе задаем імя, праходзім крокі з указаннем адрасу і ўліковага запісу. Калі патрабуецца, то не забываем пазначыць гейт, праз які будуць праксіравацца запыты да сховішча.
Пасля чаго выбіраемы бакет, тэчку і ставім галачку Make recent backups immutable. Ці не ставім. Але раз ужо мы зрабілі сховішча з падтрымкай гэтай функцыі, то грэх будзе не скарыстацца.
Next > Finish і атрымліваем асалоду ад вынікам.
Зараз трэба дадаць яго да SOBR рэпазітара ў якасці Capacity Tier. Для гэтага ці ствараем новы, ці рэдагуем наяўны. Нас цікавіць крок Capacity Tier.
Тут нам трэба абраць, па якім сцэнары мы будзем працаваць. Усе варыянты даволі добра апісаны ў іншы артыкуле, так што не буду паўтарацца
А па завяршэнні працы майстра будуць аўтаматычна запушчаны заданні на капіраванне або перанос бекапаў. Але калі ў вашыя планы не ўваходзіць так адразу выдаць нагрузку на ўсе сістэмы, то абавязкова задайце дапушчальныя інтэрвалы для працы па кнопцы Window.
І, само сабой, можна зрабіць асобныя Backup Copy заданні. Некаторыя лічаць, што так нават зручней, бо яны некалькі больш празрыстыя і прадказальныя для карыстача, не жадаючага ўнікаць у падрабязнасці працы капасіці ціра. А падрабязнасцяў тамака хапае, так што яшчэ раз рэкамендую які адпавядае артыкул па спасылцы вышэй.
І напрыканцы - адказ на падступнае пытанне: што ж будзе, калі ўсё ж узяць і паспрабаваць выдаліць бекап з Immutable вартаўніка?
Вось адказ:
На гэтым сёння ўсё. Па дакладнай традыцыі, ловіце спіс карысных топікаў па тэме: