GNU/Linux >> Linux Esercitazione >  >> Linux

Configurazione dell'archiviazione a blocchi sui server Linux

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

Linux
  1. Avvia un server da un volume Cloud Block Storage

  2. I migliori server Web Linux

  3. Esempi di comandi lvdisplay in Linux

  4. Blocco Clang in Linux?

  5. Configurazione di Kensington Slimblade in Linux

Configurazione dell'accesso al server VNC su un Redhat Linux

Come installare Grafana su server Linux

Logical Volume Manager (LVM) rispetto al partizionamento standard in Linux

Installazione e configurazione di Jenkins in Linux

Come proteggere i server Linux con SE Linux

Collega un volume Cloud Block Storage a un server Windows OnMetal