GNU/Linux >> Znalost Linux >  >> Linux

Nastavení serveru MinIO pro použití architektury úložiště

V tomto tutoriálu vysvětlím, jak nastavit server MinIO pro použití architektury úložiště. Jako každý, kdo ještě neví, co je MinIO:je to vysoce výkonný, distribuovaný systém ukládání objektů. Je softwarově definovaný, běží na standardním hardwaru a je 100% open source. Je účelově postaven tak, aby sloužil objektům jako jednovrstvá architektura, aby bylo dosaženo všech nezbytných funkcí bez kompromisů. Výsledek je vnímán jako cloudový nativní objektový server, který je současně škálovatelný a lehký.

S tím, jak se svět cloudového inženýrství objevuje stále více a více vyspěle, přicházejí na mysl věci, proč potřebujeme MinIO?

Počítejte s tím, že když poskytujete své řešení v cloudu, můžete skončit pomocí úložiště řešení, jako je AWS S3, Azure Blob Storage a Alibaba OSS. Totéž platí pro koncept, pokud vaše řešení stále zůstává v místním prostředí, protože Minio slouží jako alternativa k architektuře úložiště stejně jako poskytovaná služba cloudového úložiště.



1. Jak to funguje

V jednoduchém konceptu se Minio dodává ve 2 částech – klientská část a serverová část. Tento koncept také zahrnuje řídicí panel prostřednictvím webového uživatelského rozhraní nebo prohlížeče souborů. Nastavení každého klienta a serveru je relativně snadné, a pokud znáte rozhraní příkazového řádku (CLI), bylo by pro vás snadné jej pochopit.

Když jej však navrhneme na úroveň produkce, vše musí být distribuováno, což znamená, že poskytnuté řešení musí zajistit dobrý výkon ve velkém měřítku, samorozšiřující se růst a připravenost na vysokou dostupnost. Vzhledem k tomu má minio svůj vlastní koncept nazvaný Distributed Erasure Code .

Tento koncept je spolehlivým přístupem k datovým fragmentům na více discích a načte je zpět, i když několik z nich není dostupných. Při použití tohoto konceptu můžete ztratit polovinu disků a stále máte zaručena data

V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat server MinIO jako distribuovaný kód pro vymazání. Poté se na straně klienta rychle podíváme na to, jak využívat službu MinIO jako koncový uživatel.

2. Fáze instalace

Pro fázi instalace nakonfiguruji 2 servery jako minio cluster pro přípravu konfigurace distribuovaného kódu pro vymazání.

Nyní vypíšeme 4 diskové jednotky, které použijeme k rozdělení jako blokové zařízení pro použití minio. Vzhledem k tomu, že se naše architektura rozhodla nastavit více serverů, minimální disk, který musí být pro server, jsou 2, ale pokud používáte jeden server, minimální požadavek na disky je 1. Podrobné požadavky potřebné pro návrh kódu pro vymazání naleznete tady .

Níže jsou kroky:

 [[email protected] ~]# fdisk -l 

Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a4fd8

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM

Disk /dev/sdb: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdc: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdd: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sde: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-root: 104.1 GB, 104144568320 bytes, 203407360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Jak můžete vidět výše, na našem konci jsou na našem serveru namontované 4 disky, každý o velikosti 8 GB.

Dále vytvoříme oddíl z každého disku a poté vytvoříme vyhrazený adresář, který se připojí ke každému oddílu, který vytvoříme. Níže jsou uvedeny kroky.

 
[[email protected] ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4217c4d9.

Command (m for help): p

Disk /dev/sdb: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4217c4d9

Device Boot Start End Blocks Id System

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-16777215, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215):
Using default value 16777215
Partition 1 of type Linux and of size 8 GiB is set

Command (m for help): p

Disk /dev/sdb: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4217c4d9

Device Boot Start End Blocks Id System
/dev/sdb1 2048 16777215 8387584 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Command (m for help): q

[[email protected] ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
[[email protected] ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=524224 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2096896, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[[email protected] ~]#
[[email protected] ~]# mkdir -p /opt/drive1
[[email protected] ~]# mkdir -p /opt/drive2
[[email protected] ~]# mkdir -p /opt/drive3
[[email protected] ~]# mkdir -p /opt/drive4
[[email protected] ~]#
[[email protected] ~]# mount /dev/sdb1 /opt/drive1
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 97G 3.8G 94G 4% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 145M 870M 15% /boot
tmpfs 379M 0 379M 0% /run/user/0
/dev/sdb1 8.0G 33M 8.0G 1% /opt/drive1
[[email protected] ~]#

Po dokončení opakujte stejný proces pro vytvoření oddílu na zbývajících jednotkách a poté jej připojte ke každému adresáři, který jsme vytvořili. Jako konečný výsledek byste měli mít výstup jako níže :-

 [[email protected] ~]# mount /dev/sdb1 /opt/drive1 
[[email protected] ~]# mount /dev/sdc1 /opt/drive2
[[email protected] ~]# mount /dev/sdd1 /opt/drive3
[[email protected] ~]# mount /dev/sde1 /opt/drive4
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 97G 3.8G 94G 4% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 145M 870M 15% /boot
tmpfs 379M 0 379M 0% /run/user/0
/dev/sdb1 8.0G 33M 8.0G 1% /opt/drive1
/dev/sdc1 8.0G 33M 8.0G 1% /opt/drive2
/dev/sdd1 8.0G 33M 8.0G 1% /opt/drive3
/dev/sde1 8.0G 33M 8.0G 1% /opt/drive4

Dobře, jako nezbytný předpoklad na jednotkách pro server 1 zopakujte stejnou konfiguraci na serveru 2 jako výše.

3. Konfigurační fáze

Nyní, když jsou obě konfigurace serveru hotové, pojďme pokračovat v instalaci služby minio. Nejprve si stáhněte balíček minio, jak je uvedeno níže:

 [[email protected] ~]# wget https://dl.min.io/server/minio/release/linux-amd64/minio && chmod +x minio 
--2019-09-29 22:23:57-- https://dl.min.io/server/minio/release/linux-amd64/minio
Resolving dl.min.io (dl.min.io)... 178.128.69.202
Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 43831296 (42M) [application/octet-stream]
Saving to: ‘minio’

3% [=> ] 1,335,296 106KB/s eta 6m 33s

Nyní opakujte totéž jako výše na serveru 2.

Jakmile je vše hotovo, začněme s konfigurací minio. Definujeme MINIO_ACCESS_KEY a MINIO_SECRET_KEY jako autentizační přístup. Konfigurace je uvedena níže:-

 [[email protected] ~]# export MINIO_ACCESS_KEY=shahril && export MINIO_SECRET_KEY=shahril123 
[[email protected] ~]# ./minio server http://10.124.12.{141..142}:9000/opt/drive{1..4}
Waiting for a minimum of 4 disks to come online (elapsed 0s)

Waiting for a minimum of 4 disks to come online (elapsed 2s)

Waiting for a minimum of 4 disks to come online (elapsed 3s)

Waiting for a minimum of 4 disks to come online (elapsed 3s)

Waiting for all other servers to be online to format the disks.
Status: 8 Online, 0 Offline.
Endpoint: http://10.124.12.141:9000 http://10.124.12.142:9000
AccessKey: shahril
SecretKey: shahril123

Browser Access:
http://10.124.12.141:9000 http://10.124.12.142:9000

Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc config host add myminio http://10.124.12.141:9000 shahril shahril123

Object API (Amazon S3 compatible):
Go: https://docs.min.io/docs/golang-client-quickstart-guide
Java: https://docs.min.io/docs/java-client-quickstart-guide
Python: https://docs.min.io/docs/python-client-quickstart-guide
JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
.NET: https://docs.min.io/docs/dotnet-client-quickstart-guide

Nyní je konfigurace provedena na serveru 1, opakujte stejný krok na serveru 2 pro konfiguraci.

Jakmile je vše hotovo, můžeme přistoupit k testování výsledku

4. Testovací fáze

Když je vše hotovo, pojďme se podívat na použitelnost služeb minio. Jak je znázorněno v konfiguraci výše, můžeme přistupovat k řídicímu panelu jeho uživatelského rozhraní prostřednictvím prohlížeče. Pro náš příklad se přihlaste k http://10.124.12.141:9000 s přístupovým klíčem shahril a tajný klíč shahril123 jak je nakonfigurováno.

Výsledek se zobrazí následovně:

Po dokončení nás přesměruje na řídicí panel bucketu. Nyní vytvoříme náš první kbelík.

Klikněte na složku ikon s tlačítkem plus a pojmenujte náš první kbelík jako mylove . Příklad uvedený níže:

Po dokončení si všimnete, že se vytvoří nový segment a zobrazí se na levém panelu jako snímek obrazovky níže.

Po dokončení si všimnete, že se vytvoří nový segment a zobrazí se na levém panelu jako snímek obrazovky níže.

Dále přidejte všechny soubory z vaší místní strany, které chcete vložit do bucketu

Všimnete si, že nový soubor byl úspěšně nahrán do bucketu, jak je znázorněno níže.

Aby bylo zajištěno, že koncept distribuovaných bude dobře implementován. Udělejme jednoduchý test přístupem k minio dashboardu přes jiný server. Další adresy URL serveru jsou http://10.124.12.142:9000

Jak se očekávalo, bucket a soubory, které jsme vložili, existují také na jiných serverech URL, jak je uvedeno výše.

Nyní uděláme další test. Tentokrát použijeme jinou pracovní stanici, která bude přistupovat k našemu minio serveru pomocí klientské konzole s názvem mc .

Na straně klienta vytvoříme soubor a poté jej nahrajeme do existujícího bucketu.

Poté jako konečný výsledek očekáváme, že z řídicího panelu uvidíme, že nový soubor nahraný ze strany klienta automaticky existuje.

Nejprve otevřete klientskou pracovní stanici a stáhněte si balíček klienta minio. Příklad je uveden níže:

 [[email protected] ~]# wget https://dl.min.io/client/mc/release/linux-amd64/mc 
--2019-09-30 11:47:38-- https://dl.min.io/client/mc/release/linux-amd64/mc
Resolving dl.min.io (dl.min.io)... 178.128.69.202
Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16592896 (16M) [application/octet-stream]
Saving to: ‘mc’

100%[==============================================================================>] 16,592,896 741KB/s in 1m 59s

2019-09-30 11:49:37 (137 KB/s) - ‘mc’ saved [16592896/16592896]

[[email protected] ~]# chmod +x mc

Poté proveďte konfiguraci na straně klienta pro přístup k vyhrazenému segmentu pomocí vytvoření přístupového klíče a tajného klíče. Příklad níže:

 [[email protected] ~]# ./mc config host add myminio http://10.124.12.142:9000 shahril shahril123 
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `myminio` successfully.

Po nakonfigurování by se vám měl podařit zobrazit obsah uvnitř existujícího segmentu. Příklad níže:

 [[email protected] ~]# ./mc ls myminio 
[2019-09-30 11:16:25 +08] 0B mylove/

[[email protected] ~]# ./mc ls myminio/mylove/
[2019-09-30 11:16:25 +08] 55KiB myself.jpg

Nyní vytvořte nebo nahrajte jakýkoli existující soubor ze strany klienta do bucketu. Příklad jako níže:-

 [[email protected] ~]# ./mc cp new_file.txt myminio/mylove 
new_file.txt: 38 B / 38 B ???????????????????????????????????????????????????????????????? 100.00% 1.02 KiB/s 0s
[[email protected] ~]#

[[email protected] ~]# ./mc ls myminio/mylove/
[2019-09-30 11:16:25 +08] 55KiB myself.jpg
[2019-09-30 11:58:16 +08] 38B new_file.txt

Jakmile to uděláte, jak se očekává, když provedete aktualizaci ze strany řídicího panelu prostřednictvím jakékoli adresy URL serveru, měli byste vidět, že se zde nový soubor zobrazí, jak je uvedeno níže.

Úplný odkaz na obrázek byste měli vidět, když kliknete na ikonu sdílení na pravé straně, jak je uvedeno níže. Toto je jedinečný odkaz každého objektu uvnitř bucketu, který můžete použít na straně aplikace přes curl nebo API.

Palec nahoru! nyní jsme úspěšně nastavili a nakonfigurovali službu úložiště s vlastním hostitelem na místě pomocí Minio. Pro podrobnější informace se můžete podívat na jeho dokumentaci zde


Linux
  1. Pochopení paměti RAM pro váš cloudový server

  2. Server Ubuntu pro figuríny

  3. Najděte všechna úložná zařízení připojená k počítači se systémem Linux

  1. Nakonfigurujte odesílání protokolu pro MSSQL Server

  2. Architektura NTP serveru

  3. chyba startx při nastavování X serveru na archlinuxu

  1. Nastavte e-mailový server pomocí Virtualmin pro neomezené e-maily a úložiště

  2. Úložný server – Výměna karty SAS HBA za jiný model

  3. Příkaz Linuxu, který čeká na spuštění serveru SSH