Introduzione
I volumi Secure Block Storage (SBS) sono blocchi di archiviazione facili da usare, altamente ridondanti, scalabili e sicuri che puoi collegare ai server Atlantic.Net Cloud.
È possibile utilizzare i volumi Secure Block Storage per le proprie esigenze di archiviazione di file, database, applicazioni e backup. Progettato per una disponibilità del 99,999%, SBS viene replicato automaticamente più volte per proteggere i dati dal guasto dei componenti. Puoi aumentare lo storage al volo e spostare i tuoi volumi SBS tra i tuoi Cloud Server all'interno della stessa regione.
Questa guida tratterà come creare, configurare, formattare e gestire i tuoi volumi SBS su server Linux e presuppone che tu sia già connesso al tuo server tramite SSH.
Cosa imparerai in questa guida:
Creazione di un volume di archiviazione a blocchi
Configurazione di un volume di archiviazione a blocchi per l'uso iniziale
Scollegamento di un volume di archiviazione a blocchi
Collegamento di un volume di archiviazione a blocchi configurato in precedenza
Ridimensionamento di un volume di archiviazione a blocchi
Eliminazione di un volume di archiviazione a blocchi
Passaggi aggiuntivi necessari se si esegue SELINUX
Creazione di un volume
Passaggio 1:crea il volume nel pannello di controllo di 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.
Configurazione di un volume per l'uso iniziale
Dopo aver creato un volume nel pannello di controllo di Atlantic.Net Cloud, segui i passaggi seguenti per configurare il tuo volume nel tuo server Linux per la prima volta.
Passaggio 1:individua il volume
Il modo più semplice per individuare il volume nel server Linux è eseguire il comando "ls" nella directory "/dev/disk/by-id/". La directory "/dev/disk/by-id/" fornisce nomi di dispositivi persistenti basati su identificatori SCSI che non cambieranno tra i riavvii o quando colleghi il volume a server diversi. Tutti i volumi SBS iniziano con l'identificatore SCSI "scsi-0AN_Volume_" seguito dal nome assegnato al volume. Quindi, dato che hai chiamato il tuo volume "Vol1", il percorso del tuo volume sarà "/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
Passaggio 2:partiziona il volume
Si consiglia vivamente di utilizzare uno strumento di partizionamento moderno che supporti il partizionamento GPT come "gdisk" per partizionare il volume. I volumi formattati GPT supportano dimensioni maggiori rispetto ai vecchi strumenti di partizionamento come "fdisk".
Per prima cosa installiamo gdisk
Nota:per installare gdisk dovrai usare il gestore dei pacchetti per il tuo sistema operativo (es. Ubuntu o Debian:apt-get install gdisk, CentOS o Fedora:yum install gdisk, ecc.).
apt-get install gdisk
Per iniziare a partizionare il volume, avvia il programma "gdisk" con il percorso del tuo volume.
[email protected]:~# gdisk /dev/disk/by-id/scsi-0AN_Volume_Vol1
Il programma si avvierà, analizzerà il volume e ti chiederà di inserire ulteriori comandi
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):
Successivamente creeremo una nuova singola partizione sul nostro volume inserendo il comando "n" e quindi premendo invio per accettare tutte le impostazioni predefinite
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):
Ora possiamo inserire il comando "p" per stampare le informazioni sulla tabella delle partizioni prima di scriverle sul disco
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):
Sopra possiamo vedere che abbiamo creato una singola partizione in memoria che utilizza tutto lo spazio sul nostro Volume. Ora dobbiamo scrivere (salvare) la tabella delle partizioni sul volume usando il comando "w". Quando richiesto, rispondi "Y" per procedere.
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.
Passaggio 3:crea un file system sul volume
Ora dobbiamo creare un file system per memorizzare i dati sul volume. I file system più comuni in Linux sono ext4 e xfs. In questa guida useremo ext4.
Creiamo un file system ext4 usando il programma "mkfs.ext4" sulla partizione che abbiamo appena creato. Nota che aggiungiamo semplicemente "-part1" al percorso del nostro volume quando chiamiamo il comando.
[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
Passaggio 4:monta il volume
L'ultimo passaggio prima di poter iniziare a utilizzare il nostro volume è montarlo in una directory.
Creiamo una directory
[email protected]:~# mkdir -p /mnt/Vol1
Ora monta la partizione del volume nella directory usando il comando mount
[email protected]:~# mount -o discard,defaults /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1/
Ora possiamo vedere che il nostro volume è montato e pronto per l'uso
[email protected]:~# df -h /mnt/Vol1 Filesystem Size Used Avail Use% Mounted on /dev/sdb1 985G 72M 935G 1% /mnt/Vol1
Facoltativo:per montare automaticamente il volume dopo un riavvio è necessario aggiungere una voce al file /etc/fstab
echo '/dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1 ext4 defaults,nofail,discard 0 0' | tee -a /etc/fstab
Il tuo volume è ora pronto per l'uso.
Scollegamento di un volume da un Cloud Server
Quando non desideri più utilizzare il volume sul tuo Cloud Server, devi sempre smontare il volume sul tuo Cloud Server prima di inviare una richiesta di distacco nel pannello di controllo di Atlantic.Net Cloud.
Passaggio 1:smonta il volume
Per prima cosa dobbiamo determinare se il volume è montato. Per fare ciò utilizzeremo il comando list block "lsblk" con il flag "mountpoint" e il percorso del nostro volume.
Nota:ricorda che il percorso del nostro volume è sempre "/dev/disk/by-id/ scsi-0AN_Volume_” seguito dal nome che abbiamo dato al nostro Volume. Nell'esempio seguente il nostro volume si chiama "Vol1"
[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1 MOUNTPOINT /mnt/Vol1
L'output ci mostra che il nostro volume è montato su "/mnt/Vol1". Se non vedi nulla nell'elenco "MOUNTPOINT", il tuo volume non è montato e puoi saltare al passaggio 3 di seguito.
Ora possiamo smontare il volume usando il comando "smonta"
[email protected]:~# umount /mnt/Vol1/
E possiamo confermare che il volume non è più montato eseguendo il comando "lsblk" con il flag "mountpoint" e il percorso del nostro volume di nuovo.
[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1 MOUNTPOINT
Ora puoi inviare un comando di distacco dal pannello di controllo di Atlantic.Net
Fase 3:scollega il volume dal Cloud Server
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.
Collegamento di un volume precedentemente configurato a un server cloud
Se in precedenza hai configurato un Volume in un Cloud Server e lo hai staccato dal Cloud Server e desideri collegarlo allo stesso o ad altro Cloud Server, segui le indicazioni seguenti.
Passaggio 1:collega il volume al Cloud Server desiderato
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.
Passaggio 2:individua il volume
Il modo più semplice per individuare il volume nel server Linux è eseguire il comando "ls" nella directory "/dev/disk/by-id/". La directory "/dev/disk/by-id/" fornisce nomi di dispositivi persistenti basati su identificatori SCSI che non cambieranno tra i riavvii o quando colleghi il volume a server diversi. Tutti i volumi SBS iniziano con l'identificatore SCSI "scsi-0AN_Volume_" seguito dal nome assegnato al volume. Quindi, dato che hai chiamato il tuo volume "Vol1", il percorso del tuo volume sarà "/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
Passaggio 3:monta il volume
L'ultimo passaggio prima di poter iniziare a utilizzare il nostro volume è montarlo in una directory.
Creiamo una directory
[email protected]:~# mkdir -p /mnt/Vol1
Ora monta la partizione del volume nella directory usando il comando mount
[email protected]:~# mount -o discard,defaults /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1/
Ora possiamo vedere che il nostro volume è montato e pronto per l'uso
[email protected]:~# df -h /mnt/Vol1 Filesystem Size Used Avail Use% Mounted on /dev/sdb1 985G 72M 935G 1% /mnt/Vol1
Facoltativo:per montare automaticamente il volume dopo un riavvio è necessario aggiungere una voce al file /etc/fstab
echo '/dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1 ext4 defaults,nofail,discard 0 0' | tee -a /etc/fstab
Il tuo volume è ora pronto per l'uso.
Ridimensionamento di un volume
A corto di spazio? Se desideri espandere la dimensione di archiviazione di un volume, procedi nel seguente modo.
Passaggio 1:ridimensiona il volume nel pannello di controllo di 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.
Ora dovresti vedere che il volume è stato ridimensionato nel Pannello di controllo
Passaggio 2:individua il volume
Il modo più semplice per individuare il volume nel server Linux è eseguire il comando "ls" nella directory "/dev/disk/by-id/". La directory "/dev/disk/by-id/" fornisce nomi di dispositivi persistenti basati su identificatori SCSI che non cambieranno tra i riavvii o quando colleghi il volume a server diversi. Tutti i volumi SBS iniziano con l'identificatore SCSI "scsi-0AN_Volume_" seguito dal nome assegnato al volume. Quindi, dato che hai chiamato il tuo volume "Vol1", il percorso del tuo volume sarà "/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
Passaggio 3:esegui il backup delle informazioni sulla partizione
Prima di ridimensionare la partizione del volume per utilizzare lo spazio aggiuntivo, creeremo un backup della nostra tabella delle partizioni esistente utilizzando il comando "gdisk"
Per iniziare il processo, avvia il programma "gdisk" con il percorso del tuo volume.
[email protected]:~# gdisk /dev/disk/by-id/scsi-0AN_Volume_Vol1
Il programma si avvierà, analizzerà il volume e ti chiederà di inserire ulteriori comandi
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):
Quindi, inserisci il comando "b" per creare un backup della tabella delle partizioni e fornire un nome per il file di backup.
Command (? for help): b Enter backup filename to save: partition_table.backup The operation has completed successfully. Command (? for help):
Ora dobbiamo riposizionare le strutture dei dati di backup della nostra tabella delle partizioni. Questo deve essere fatto perché abbiamo ridimensionato il volume.
Entra in modalità esperto usando il comando "x"
Command (? for help): x
Ora riposiziona le strutture dei dati di backup con il comando "e"
Expert command (? for help): e Relocating backup data structures to the end of the disk
Ora torna alla modalità normale con il comando "m"
Expert command (? for help): m
Passaggio 3:ridimensiona la partizione sul volume
Prima di ridimensionare la partizione, vediamo le informazioni sulla tabella delle partizioni
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
Sopra possiamo vedere che la dimensione della partizione non è ancora cambiata e che abbiamo solo una partizione sul nostro volume.
Successivamente, sostituiremo le informazioni sulla partizione esistente eliminandole e ricreandole con le nuove dimensioni più grandi offerte dal nostro volume.
Per prima cosa cancella le informazioni sulla partizione usando il comando “d”
Command (? for help): d Using 1
Quindi, creiamo di nuovo la partizione usando il comando "n" e premiamo invio per accettare tutte le impostazioni predefinite. Questo creerà una singola partizione proprio come avevamo prima, preservando così i nostri dati e offrendo più spazio disponibile alla partizione.
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'
Successivamente possiamo visualizzare di nuovo le informazioni sulla tabella delle partizioni:
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
Sopra possiamo vedere che la dimensione della partizione ora riflette il nostro spazio aggiuntivo.
Ora dobbiamo scrivere (salvare) la tabella delle partizioni sul volume usando il comando "w". Quando richiesto, rispondi "Y" per procedere.
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.
Passaggio 4:informa Linux delle modifiche alla partizione
Lo strumento più semplice da utilizzare per informare Linux della modifica della partizione è "partprobe" che fa parte del "pacchetto parte"
Installa parted
Nota:per installare parted sarà necessario utilizzare il gestore dei pacchetti per il tuo sistema operativo (es. Ubuntu o Debian:apt-get install parted, CentOS o Fedora:yum install parted, ecc.).
apt-get install parted
Una volta installato "parted", possiamo eseguire il comando partprobe con il percorso del nostro dispositivo
[email protected]:~# partprobe /dev/disk/by-id/scsi-0AN_Volume_Vol1
Linux ora parla delle modifiche alla partizione
Passaggio 5:ridimensiona il file system
Poiché il nostro volume è stato configurato con il file system ext4, è necessario utilizzare il comando "resize2fs" con il percorso della partizione del dispositivo per ridimensionare il dispositivo. Questo può essere fatto mentre il volume è montato.
Nota:l'uso del comando resize2fs su un volume montato in CentOS 6 o Debian 7 può richiedere molto tempo per il completamento. Se stai utilizzando una di queste versioni dei sistemi operativi, ti consigliamo di smontare il volume prima di procedere.
Nota:se il tuo volume utilizza il file system XFS, dovresti utilizzare "xfs_growfs /path/to/mountpoint" per ridimensionare il tuo file system.
[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.
Il tuo spazio aggiuntivo è ora pronto per l'uso.
Eliminazione di un volume
Quando non desideri più un volume, segui i passaggi seguenti.
Nota:dovresti sempre smontare il volume nel tuo Cloud Server prima di inviare una richiesta di eliminazione nel pannello di controllo di Atlantic.Net Cloud.
Passaggio 1:smonta il volume
Per prima cosa dobbiamo determinare se il volume è montato. Per fare ciò utilizzeremo il comando list block "lsblk" con il flag "mountpoint" e il percorso del nostro volume.
Nota:ricorda che il percorso del nostro volume è sempre "/dev/disk/by-id/ scsi-0AN_Volume_” seguito dal nome che abbiamo dato al nostro Volume. Nell'esempio seguente il nostro volume si chiama "Vol1"
[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1 MOUNTPOINT /mnt/Vol1
L'output ci mostra che il nostro volume è montato su "/mnt/Vol1". Se non vedi nulla nell'elenco "MOUNTPOINT", il tuo volume non è montato e puoi saltare al passaggio 3 di seguito.
Ora possiamo smontare il volume usando il comando "smonta"
[email protected]:~# umount /mnt/Vol1/
E possiamo confermare che il volume non è più montato eseguendo il comando "lsblk" con il flag "mountpoint" e il percorso del nostro volume di nuovo.
[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1 MOUNTPOINT
Passaggio 2:elimina il volume nel pannello di controllo di 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.
Il volume è stato ora eliminato e non ti verrà più addebitato in futuro.
Passaggi aggiuntivi richiesti se si esegue SELINUX
SELINUX è un miglioramento della sicurezza integrato nella maggior parte delle distribuzioni Linux. Offre agli utenti un maggiore controllo dell'accesso e dovrebbe essere abilitato negli ambienti di produzione per ridurre notevolmente la superficie di attacco del tuo server.
Se utilizzi lo storage ACP SBS per i dati delle applicazioni, è possibile che SELINUX impedisca ad alcune applicazioni di accedere o scrivere file o directory.
In questo esempio, la nostra cartella Apache /var/www/html si trova su un volume logico SBS.
Utilizzeremo il comando chcon per consentire al demone Apache l'accesso in lettura/scrittura al volume SBS.
# chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/
(se vuoi consentire il root web completo)
# chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/uploads/
(o semplicemente carica la cartella)
Per assegnare al processo Apache la proprietà del volume, puoi utilizzare chown:
# chown apache:apache -R /var/www/html/
Per distribuire i permessi dei file ricorsivi, combina i comandi find e chmod in questo modo:
# find . -type f -exec chmod 0644 {} \;
Nota – chmod 644 significa che solo il proprietario può scrivere/modificare, sola lettura per gli altri (gruppo) inclusi.
Per distribuire i permessi delle cartelle ricorsive, combina i comandi find e chmod in questo modo:
# find . -type d -exec chmod 0755 {} \;
Nota – 755 significa accesso in lettura ed esecuzione per tutti e anche accesso in scrittura per il proprietario del file.
Ora imposta SELINUX per consentire ad Apache di servire tutti i file in modo ricorsivo:
# chcon -t httpd_sys_content_t /var/www/html/ -R
Oppure, se preferisci consentire ad Apache solo l'accesso a directory specifiche:
# chcon -t httpd_sys_rw_content_t /var/www/html/logs/ -R # chcon -t httpd_sys_rw_content_t /var/www/html/uploads/ -R
Per riferimento futuro, prendi nota di questi due parametri SELINX richiesti per HTTP (Apache):
httpd_sys_content_t – allow Apache to serve contents httpd_sys_rw_content_t – allow Apache to write to those path