MinIo для самых маленькіх

MinIO - выдатнае рашэнне, калі трэба лёгка і проста арганізаваць аб'ектнае сховішча. Элементарная настройка, мноства платформаў і добрая прадукцыйнасць зрабілі сваю справу на ніве народнага кахання. Так што ў нас не было іншага шляху, як месяц таму заявіць аб сумяшчальнасці Veeam Backup & Replication і MinIO. Уключаючы такую ​​важную функцыю, як Immutability. Насамрэч у MinIO ёсць цэлы раздзел у дакументацыі, прысвечаны нашай інтэграцыі.

Таму сёння мы пагаворым аб тым, як:

  • Наладзіць MinIO вельмі хутка.
  • Наладзіць MinIO крыху менш хутка, але значна якасней.
  • Выкарыстоўваць яго ў якасці Archive Tier для маштабуецца рэпазітара Veeam SOBR.

MinIo для самых маленькіх

Што ты такое?

Кароткая ўступная для тых, хто не сутыкаўся з 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 для самых маленькіх
На гэтым усё! Сховішча працуе і можна пачынаць з ім працаваць. Я не жартаваў, калі казаў, што 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. І робім крыху кансольнай магіі:

  • Ствараем ключы: openssl ecparam-genkey-name prime256v1 | openssl ec -out private.key
  • Ствараем сертыфікат па ключы: openssl req -new -x509 -days 3650 -key private.key -out public.crt
  • Капіяваны private.key і public.crt у тэчку, паказаную вышэй
  • Перазапускаем MinIO

Калі ўсё прайшло як трэба, то ў статуце з'явяцца прыкладна такія радкі.

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 для самых маленькіх
Далей для кіравання і налады 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

А потым створым immutable бакет прыгожай камандай

mc mb --debug -l veeamS3/immutable 

mc: <DEBUG> PUT /immutable/ HTTP/1.1
Host: 172.17.32.52:9000
User-Agent: MinIO (windows; amd64) minio-go/v7.0.5 mc/2020-08-08T02:33:58Z
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=minioadmin/20200819/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-bucket-object-lock-enabled;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Bucket-Object-Lock-Enabled: true
X-Amz-Content-Sha256: UNSIGNED-PAYLOAD
X-Amz-Date: 20200819T092241Z
Accept-Encoding: gzip
mc: <DEBUG> HTTP/1.1 200 OK
Content-Length: 0
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Date: Wed, 19 Aug 2020 09:22:42 GMT
Location: /immutable
Server: MinIO/RELEASE.2020-08-16T18-39-38Z
Vary: Origin
X-Amz-Request-Id: 162CA0F9A3A3AEA0
X-Xss-Protection: 1; mode=block
mc: <DEBUG> Response Time:  253.0017ms

-debug дазваляе бачыць не проста выніковае паведамленне, а больш разгорнутую інфармацыю. 

-l значыць -with-lock, што значыць immutable

Калі зараз вярнуцца ў вэб інтэрфейс, то тамака з'явіцца наш новы бакет.

MinIo для самых маленькіх
На дадзены момант гэта ўсё. Мы стварылі абароненае сховішча і гатовы пераходзіць да інтэграцыі з 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, дзе выклічам майстар дадання новага рэпазітара.

MinIo для самых маленькіх
Само сабой, цікавіць нас Object storage, а менавіта S3 Compatible. У які адкрыўся візардзе задаем імя, праходзім крокі з указаннем адрасу і ўліковага запісу. Калі патрабуецца, то не забываем пазначыць гейт, праз які будуць праксіравацца запыты да сховішча.

MinIo для самых маленькіх
Пасля чаго выбіраемы бакет, тэчку і ставім галачку Make recent backups immutable. Ці не ставім. Але раз ужо мы зрабілі сховішча з падтрымкай гэтай функцыі, то грэх будзе не скарыстацца.

MinIo для самых маленькіх
Next > Finish і атрымліваем асалоду ад вынікам.

Зараз трэба дадаць яго да SOBR рэпазітара ў якасці Capacity Tier. Для гэтага ці ствараем новы, ці рэдагуем наяўны. Нас цікавіць крок Capacity Tier.

MinIo для самых маленькіх
Тут нам трэба абраць, па якім сцэнары мы будзем працаваць. Усе варыянты даволі добра апісаны ў іншы артыкуле, так што не буду паўтарацца

А па завяршэнні працы майстра будуць аўтаматычна запушчаны заданні на капіраванне або перанос бекапаў. Але калі ў вашыя планы не ўваходзіць так адразу выдаць нагрузку на ўсе сістэмы, то абавязкова задайце дапушчальныя інтэрвалы для працы па кнопцы Window.

MinIo для самых маленькіх
І, само сабой, можна зрабіць асобныя Backup Copy заданні. Некаторыя лічаць, што так нават зручней, бо яны некалькі больш празрыстыя і прадказальныя для карыстача, не жадаючага ўнікаць у падрабязнасці працы капасіці ціра. А падрабязнасцяў тамака хапае, так што яшчэ раз рэкамендую які адпавядае артыкул па спасылцы вышэй.

І напрыканцы - адказ на падступнае пытанне: што ж будзе, калі ўсё ж узяць і паспрабаваць выдаліць бекап з Immutable вартаўніка?

Вось адказ:

MinIo для самых маленькіх
На гэтым сёння ўсё. Па дакладнай традыцыі, ловіце спіс карысных топікаў па тэме:

Крыніца: habr.com

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