Úvod
Svazky Secure Block Storage (SBS) se snadno používají, jsou vysoce redundantní, škálovatelné a zabezpečené blokové úložiště, které můžete připojit ke cloudovým serverům Atlantic.Net.
Svazky Secure Block Storage můžete použít pro potřeby úložiště souborů, databáze, aplikací a záloh. SBS, navržený pro 99,999% dostupnost, je automaticky několikrát replikován, aby byla vaše data chráněna před selháním komponent. Úložiště můžete zvětšovat za běhu a přesouvat své svazky SBS mezi cloudovými servery ve stejné oblasti.
Tato příručka se bude zabývat tím, jak vytvořit, nakonfigurovat, formátovat a spravovat vaše svazky SBS na serverech Linux a předpokládá, že jste již připojeni k serveru prostřednictvím SSH.
Co se v této příručce dozvíte:
Vytvoření svazku úložiště bloků
Konfigurace svazku úložiště bloků pro počáteční použití
Odpojení svazku úložiště bloků
Připojení dříve nakonfigurovaného svazku úložiště bloků
Změna velikosti svazku úložiště bloků
Odstranění blokového úložného svazku
Při spuštění SELINUX jsou vyžadovány další kroky
Vytvoření svazku
Krok 1:Vytvořte svazek v ovládacím panelu Atlantic.Net Cloud
In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Add Volume" button. Next select the volume size, name, location, and server you wish to attach the Volume to.
After the Volume is done creating, you should see that the Volume is attached to the server you chose.
Konfigurace svazku pro první použití
Po vytvoření svazku v ovládacím panelu Atlantic.Net Cloud proveďte první konfiguraci svazku na serveru Linux podle níže uvedených kroků.
Krok 1:Vyhledejte svazek
Nejjednodušší způsob, jak najít svůj svazek na vašem Linux serveru, je spustit příkaz „ls“ v adresáři „/dev/disk/by-id/“. Adresář „/dev/disk/by-id/“ poskytuje trvalé názvy zařízení na základě identifikátorů SCSI, které se nezmění po restartování nebo při připojení svazku k různým serverům. Všechny svazky SBS začínají identifikátorem SCSI „scsi-0AN_Volume_“ následovaným názvem, který jste svému svazku přidělili. Takže vzhledem k tomu, že jste svůj svazek pojmenovali „Vol1“, cesta k vašemu svazku bude „/dev/disk/by-id/scsi-0AN_Volume_Vol1“
[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_* /dev/disk/by-id/scsi-0AN_Volume_Vol1
Krok 2:Rozdělte svazek
Důrazně doporučujeme, abyste k rozdělení svazku použili moderní nástroj pro dělení, který podporuje dělení GPT, jako je „gdisk“. Svazky ve formátu GPT podporují větší velikosti než starší nástroje pro vytváření oddílů, jako je „fdisk“.
Nejprve nainstalujme gdisk
Poznámka:K instalaci gdisk budete potřebovat správce balíčků pro váš operační systém (např. Ubuntu nebo Debian:apt-get install gdisk, CentOS nebo Fedora:yum install gdisk atd.).
apt-get install gdisk
Chcete-li zahájit rozdělení svazku, spusťte program „gdisk“ s cestou k vašemu svazku.
[email protected]:~# gdisk /dev/disk/by-id/scsi-0AN_Volume_Vol1
Program se spustí, analyzuje svazek a zobrazí výzvu k zadání dalších příkazů
GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help):
Dále vytvoříme nový samostatný oddíl na našem svazku zadáním příkazu „n“ a poté stisknutím klávesy Enter přijmeme všechna výchozí nastavení
Command (? for help): n Partition number (1-128, default 1): First sector (34-2097151966, default = 2048) or {+-}size{KMGTP}: Last sector (2048-2097151966, default = 2097151966) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help):
Nyní můžeme zadat příkaz „p“ a vytisknout informace o tabulce oddílů předtím, než ji zapíšeme na disk
Command (? for help): p Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 2097152000 sectors, 1000.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D Partition table holds up to 128 entries First usable sector is 34, last usable sector is 2097151966 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 2097151966 1000.0 GiB 8300 Linux filesystem Command (? for help):
Výše vidíme, že jsme vytvořili jeden oddíl v paměti, který využívá veškerý prostor na našem svazku. Nyní musíme zapsat (uložit) tabulku oddílů do svazku pomocí příkazu „w“. Až budete vyzváni, odpovězte „Y“ a pokračujte.
Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/disk/by-id/scsi-0AN_Volume_Vol1. The operation has completed successfully.
Krok 3:Vytvořte systém souborů na svazku
Nyní musíme vytvořit systém souborů pro ukládání dat na svazek. Nejběžnější souborové systémy v Linuxu jsou ext4 a xfs. V této příručce budeme používat ext4.
Vytvořme souborový systém ext4 pomocí programu „mkfs.ext4“ na oddílu, který jsme právě vytvořili. Všimněte si, že při volání příkazu jednoduše přidáme „-part1“ k cestě k našemu svazku.
[email protected]:~# mkfs.ext4 /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 mke2fs 1.42.13 (17-May-2015) Discarding device blocks: done Creating filesystem with 262143739 4k blocks and 65536000 inodes Filesystem UUID: 60bd3dd1-cb39-4a64-a015-771ae50bcc16 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Krok 4:Připojte svazek
Posledním krokem, než můžeme začít používat náš svazek, je připojit jej do adresáře.
Vytvořme adresář
[email protected]:~# mkdir -p /mnt/Vol1
Nyní připojte oddíl svazku v adresáři pomocí příkazu mount
[email protected]:~# mount -o discard,defaults /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1/
Nyní můžeme vidět, že náš svazek je připojen a připraven k použití
[email protected]:~# df -h /mnt/Vol1 Filesystem Size Used Avail Use% Mounted on /dev/sdb1 985G 72M 935G 1% /mnt/Vol1
Volitelné:Chcete-li, aby byl váš svazek připojen automaticky po restartu, musíte přidat položku do souboru /etc/fstab
echo '/dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1 ext4 defaults,nofail,discard 0 0' | tee -a /etc/fstab
Váš svazek je nyní připraven k použití.
Odpojení svazku od cloudového serveru
Pokud již nechcete svazek na cloudovém serveru používat, měli byste vždy odpojit svazek na cloudovém serveru před odesláním požadavku na odpojení v ovládacím panelu Atlantic.Net Cloud.
Krok 1:Odpojte svazek
Nejprve musíme určit, zda je svazek připojen. K tomu použijeme příkaz list block „lsblk“ s příznakem „mountpoint“ a cestou k našemu svazku.
Poznámka:Pamatujte, že cesta k našemu svazku je vždy „/dev/disk/by-id/ scsi-0AN_Volume_” následovaný názvem, který jsme dali našemu svazku. V níže uvedeném příkladu je náš svazek pojmenován „Vol1“
[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1 MOUNTPOINT /mnt/Vol1
Výstup nám ukazuje, že náš svazek je připojen k „/mnt/Vol1“. Pokud v části „MOUNTPOINT“ nevidíte nic, váš svazek není připojen a můžete přeskočit na krok 3 níže.
Nyní můžeme svazek odpojit pomocí příkazu „umount“
[email protected]:~# umount /mnt/Vol1/
A můžeme potvrdit, že svazek již není připojen, spuštěním příkazu „lsblk“ s příznakem „mountpoint“ a opětovnou cestou k našemu svazku.
[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1 MOUNTPOINT
Nyní můžete vydat příkaz k odpojení z ovládacího panelu Atlantic.Net
Krok 3:Odpojte svazek od cloudového serveru
In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Detach" button next to the Volume you wish to detach.
In the pop-up window, confirm you wish to detach the Volume from the Cloud Server by clicking the "Detach" button.
Připojení dříve nakonfigurovaného svazku ke cloudovému serveru
Pokud jste dříve nakonfigurovali svazek na cloudovém serveru a odpojili ho od cloudového serveru a chcete jej připojit ke stejnému nebo jinému cloudovému serveru, postupujte podle níže uvedených pokynů.
Krok 1:Připojte svazek k požadovanému cloudovému serveru
In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Attach" button next to the Volume you wish to attach.
In the pop-up window, select the server you wish to attach the volume to.
After the Volume is done attaching, you should see that the Volume is attached to the server you chose.
Krok 2:Vyhledejte svazek
Nejjednodušší způsob, jak najít svůj svazek na vašem Linux serveru, je spustit příkaz „ls“ v adresáři „/dev/disk/by-id/“. Adresář „/dev/disk/by-id/“ poskytuje trvalé názvy zařízení na základě identifikátorů SCSI, které se nezmění po restartování nebo při připojení svazku k různým serverům. Všechny svazky SBS začínají identifikátorem SCSI „scsi-0AN_Volume_“ následovaným názvem, který jste svému svazku přidělili. Takže vzhledem k tomu, že jste svůj svazek pojmenovali „Vol1“, cesta k vašemu svazku bude „/dev/disk/by-id/scsi-0AN_Volume_Vol1“
[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_* /dev/disk/by-id/scsi-0AN_Volume_Vol1 /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1
Krok 3:Připojte svazek
Posledním krokem, než můžeme začít používat náš svazek, je připojit jej do adresáře.
Vytvořme adresář
[email protected]:~# mkdir -p /mnt/Vol1
Nyní připojte oddíl svazku v adresáři pomocí příkazu mount
[email protected]:~# mount -o discard,defaults /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1/
Nyní můžeme vidět, že náš svazek je připojen a připraven k použití
[email protected]:~# df -h /mnt/Vol1 Filesystem Size Used Avail Use% Mounted on /dev/sdb1 985G 72M 935G 1% /mnt/Vol1
Volitelné:Chcete-li, aby byl váš svazek připojen automaticky po restartu, musíte přidat položku do souboru /etc/fstab
echo '/dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1 ext4 defaults,nofail,discard 0 0' | tee -a /etc/fstab
Váš svazek je nyní připraven k použití.
Změna velikosti svazku
Dochází vám místo? Pokud chcete rozšířit velikost úložiště svazku, postupujte podle následujících kroků.
Krok 1:Změňte velikost hlasitosti v ovládacím panelu Atlantic.Net Cloud
In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Resize" button next to the Volume you wish to resize to a larger size.
In the pop-up window, select the size you wish to resize the Volume to and then press the "Resize" button.
Nyní byste měli vidět, že velikost hlasitosti byla změněna v Ovládacích panelech
Krok 2:Vyhledejte svazek
Nejjednodušší způsob, jak najít svůj svazek na vašem Linux serveru, je spustit příkaz „ls“ v adresáři „/dev/disk/by-id/“. Adresář „/dev/disk/by-id/“ poskytuje trvalé názvy zařízení na základě identifikátorů SCSI, které se nezmění po restartování nebo při připojení svazku k různým serverům. Všechny svazky SBS začínají identifikátorem SCSI „scsi-0AN_Volume_“ následovaným názvem, který jste svému svazku přidělili. Takže vzhledem k tomu, že jste svůj svazek pojmenovali „Vol1“, cesta k vašemu svazku bude „/dev/disk/by-id/scsi-0AN_Volume_Vol1“
[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_* /dev/disk/by-id/scsi-0AN_Volume_Vol1 /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1
Krok 3:Zálohujte informace o oddílu
Než změníme velikost oddílu svazku, abychom využili další prostor, vytvoříme zálohu naší stávající tabulky oddílů pomocí příkazu „gdisk“
Chcete-li zahájit proces, spusťte program „gdisk“ s cestou k vašemu svazku.
[email protected]:~# gdisk /dev/disk/by-id/scsi-0AN_Volume_Vol1
Program se spustí, analyzuje svazek a zobrazí výzvu k zadání dalších příkazů
GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help):
Dále zadejte příkaz „b“ pro vytvoření zálohy tabulky oddílů a zadejte název záložního souboru.
Command (? for help): b Enter backup filename to save: partition_table.backup The operation has completed successfully. Command (? for help):
Nyní musíme přemístit záložní datové struktury naší tabulky oddílů. To je potřeba udělat, protože jsme změnili velikost svazku.
Vstupte do expertního režimu pomocí příkazu „x“
Command (? for help): x
Nyní přemístěte zálohované datové struktury příkazem „e“
Expert command (? for help): e Relocating backup data structures to the end of the disk
Nyní se vraťte do normálního režimu příkazem „m“
Expert command (? for help): m
Krok 3:Změňte velikost oddílu na svazku
Než změníme velikost oddílu, podívejme se na informace o tabulce oddílů
Command (? for help): p Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 8388608000 sectors, 3.9 TiB Logical sector size: 512 bytes Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D Partition table holds up to 128 entries First usable sector is 34, last usable sector is 8388607966 Partitions will be aligned on 2048-sector boundaries Total free space is 6291458014 sectors (2.9 TiB) Number Start (sector) End (sector) Size Code Name 1 2048 2097151966 1000.0 GiB 8300 Linux filesystem
Výše vidíme, že velikost oddílu se zatím nezměnila a že na našem svazku máme pouze jeden oddíl.
Dále nahradíme informace o existujících oddílech tak, že je odstraníme a znovu je vytvoříme s novou větší velikostí, kterou náš svazek nabízí.
Nejprve odstraňte informace o oddílu pomocí příkazu „d“
Command (? for help): d Using 1
Poté znovu vytvoříme oddíl pomocí příkazu „n“ a stisknutím klávesy Enter přijmeme všechna výchozí nastavení. Tím vytvoříme jeden oddíl, stejně jako jsme měli předtím, čímž zachováme naše data a nabídneme více dostupného prostoru oddílu.
Command (? for help): n Partition number (1-128, default 1): First sector (34-8388607966, default = 2048) or {+-}size{KMGTP}: Last sector (2048-8388607966, default = 8388607966) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem'
Dále můžeme znovu zobrazit informace o tabulce oddílů:
Command (? for help): p Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 8388608000 sectors, 3.9 TiB Logical sector size: 512 bytes Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D Partition table holds up to 128 entries First usable sector is 34, last usable sector is 8388607966 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 8388607966 3.9 TiB 8300 Linux filesystem
Výše vidíme, že velikost oddílu nyní odráží náš dodatečný prostor.
Nyní musíme zapsat (uložit) tabulku oddílů do svazku pomocí příkazu „w“. Až budete vyzváni, odpovězte „Y“ a pokračujte.
Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/disk/by-id/scsi-0AN_Volume_Vol1. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully.
Krok 4:Informujte Linux o změnách oddílu
Nejjednodušší nástroj k informování Linuxu o změně oddílu je „partprobe“, který je součástí „balíčku parted“
Nainstalujte parted
Poznámka:K instalaci parted budete potřebovat správce balíčků pro váš operační systém (např. Ubuntu nebo Debian:apt-get install parted, CentOS nebo Fedora:yum install parted atd.).
apt-get install parted
Jakmile je „parted“ nainstalován, můžeme spustit příkaz partprobe s cestou k našemu zařízení
[email protected]:~# partprobe /dev/disk/by-id/scsi-0AN_Volume_Vol1
Linux nyní o změnách oddílů
Krok 5:Změňte velikost systému souborů
Protože byl náš svazek nakonfigurován pomocí souborového systému ext4, musíme ke změně velikosti zařízení použít příkaz „resize2fs“ s cestou k oddílu našeho zařízení. To lze provést, když je svazek připojen.
Poznámka:Použití příkazu resize2fs na připojeném svazku v CentOS 6 nebo Debianu 7 může trvat velmi dlouho. Pokud používáte některou z těchto verzí operačních systémů, doporučujeme před pokračováním odpojit svůj svazek.
Poznámka:Pokud váš svazek používá systém souborů XFS, použijte „xfs_growfs /cesta/k/připojovacímu bodu“ pro změnu velikosti systému souborů.
[email protected]:~# resize2fs /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 resize2fs 1.42.13 (17-May-2015) Filesystem at /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 is mounted on /mnt/Vol1; on-line resizing required old_desc_blocks = 63, new_desc_blocks = 250 The filesystem on /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 is now 1048575739 (4k) blocks long.
Váš další prostor je nyní připraven k použití.
Odstranění svazku
Pokud již svazek nechcete, postupujte podle níže uvedených kroků.
Poznámka:Vždy byste měli odpojit svazek na cloudovém serveru před odesláním požadavku na odstranění v Atlantic.Net Cloud Control Panel.
Krok 1:Odpojte svazek
Nejprve musíme určit, zda je svazek připojen. K tomu použijeme příkaz list block „lsblk“ s příznakem „mountpoint“ a cestou k našemu svazku.
Poznámka:Pamatujte, že cesta k našemu svazku je vždy „/dev/disk/by-id/ scsi-0AN_Volume_” následovaný názvem, který jsme dali našemu svazku. V níže uvedeném příkladu je náš svazek pojmenován „Vol1“
[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1 MOUNTPOINT /mnt/Vol1
Výstup nám ukazuje, že náš svazek je připojen k „/mnt/Vol1“. Pokud v části „MOUNTPOINT“ nevidíte nic, váš svazek není připojen a můžete přeskočit na krok 3 níže.
Nyní můžeme svazek odpojit pomocí příkazu „umount“
[email protected]:~# umount /mnt/Vol1/
A můžeme potvrdit, že svazek již není připojen, spuštěním příkazu „lsblk“ s příznakem „mountpoint“ a opětovnou cestou k našemu svazku.
[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1 MOUNTPOINT
Krok 2:Smažte svazek v ovládacím panelu Atlantic.Net
In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Delete" button next to the Volume you wish to delete.
In the pop-up window, carefully read the entire message, and click the "Delete" button to remove the Volume.
Svazek byl nyní smazán a nadále vám za něj nebudou účtovány poplatky.
Při spuštění SELINUX jsou vyžadovány další kroky
SELINUX je bezpečnostní vylepšení zabudované do většiny distribucí Linuxu. Poskytuje uživatelům větší kontrolu přístupu a měl by být povolen v produkčním prostředí, aby se výrazně snížila plocha útoku vašeho serveru.
Pokud používáte úložiště ACP SBS pro data aplikací, jeho možný SELINUX může bránit určitým aplikacím v přístupu k souborům nebo adresářům nebo v jejich zápisu.
V tomto příkladu je naše složka Apache /var/www/html umístěna na logickém svazku SBS.
Použijeme příkaz chcon, abychom umožnili démonu Apache čtení/zápis na svazek SBS.
# chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/
(pokud chcete povolit úplný web root)
# chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/uploads/
(nebo jen složku pro nahrávání)
Chcete-li dát procesu Apache vlastnictví svazku, můžete použít chown:
# chown apache:apache -R /var/www/html/
Chcete-li distribuovat oprávnění k rekurzivnímu souboru, zkombinujte příkazy find a chmod takto:
# find . -type f -exec chmod 0644 {} \;
Poznámka – chmod 644 znamená, že zapisovat/upravovat může pouze vlastník, včetně pouze pro čtení pro ostatní (skupinu).
Chcete-li distribuovat oprávnění rekurzivní složky, zkombinujte příkazy find a chmod takto:
# find . -type d -exec chmod 0755 {} \;
Poznámka – 755 znamená přístup pro čtení a spouštění pro každého a také přístup pro zápis pro vlastníka souboru.
Nyní nastavte SELINUX tak, aby umožnil Apache obsluhovat všechny soubory rekurzivně:
# chcon -t httpd_sys_content_t /var/www/html/ -R
Nebo pokud byste raději povolili Apache přístup pouze ke konkrétním adresářům:
# chcon -t httpd_sys_rw_content_t /var/www/html/logs/ -R # chcon -t httpd_sys_rw_content_t /var/www/html/uploads/ -R
Pro budoucí použití si poznamenejte tyto dva parametry SELINX vyžadované pro HTTP (Apache):
httpd_sys_content_t – allow Apache to serve contents httpd_sys_rw_content_t – allow Apache to write to those path