Udostępnij za pośrednictwem


Konfigurowanie usługi LVM i RAID na urządzeniach zaszyfrowanych

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

Ten artykuł to krok po kroku proces wykonywania funkcji zarządzania woluminami logicznymi (LVM) i RAID na zaszyfrowanych urządzeniach. Proces dotyczy następujących środowisk:

  • Dystrybucje systemu Linux
    • RHEL 7.6+
    • Ubuntu 18.04+
    • SUSE 12+
  • Jednoprzepustowe rozszerzenie usługi Azure Disk Encryption
  • Rozszerzenie z podwójnym przekazywaniem usługi Azure Disk Encryption

Scenariusze

Procedury opisane w tym artykule obsługują następujące scenariusze:

  • Konfigurowanie maszyny LVM na urządzeniach zaszyfrowanych (LVM-on-crypt)
  • Konfigurowanie macierzy RAID na urządzeniach zaszyfrowanych (RAID-on-crypt)

Po zaszyfrowaniu bazowego urządzenia lub urządzeń można utworzyć struktury LVM lub RAID na podstawie tej zaszyfrowanej warstwy.

Woluminy fizyczne (PV) są tworzone w górnej części zaszyfrowanej warstwy. Woluminy fizyczne są używane do tworzenia grupy woluminów. Należy utworzyć woluminy i dodać wymagane wpisy w /etc/fstab.

Diagram warstw struktur LVM

W podobny sposób urządzenie RAID jest tworzone na podstawie zaszyfrowanej warstwy na dyskach. System plików jest tworzony na górze urządzenia RAID i dodawany do /etc/fstab jako zwykłe urządzenie.

Kwestie wymagające rozważenia

Zalecamy użycie funkcji LVM-on-crypt. MACIERZ RAID jest opcją, gdy lvm nie może być używany z powodu określonych ograniczeń aplikacji lub środowiska.

Użyjesz opcji EncryptFormatAll . Aby uzyskać więcej informacji na temat tej opcji, zobacz Use the EncryptFormatAll feature for data disks on Linux VMs (Używanie funkcji EncryptFormatAll dla dysków danych na maszynach wirtualnych z systemem Linux).

Chociaż można użyć tej metody podczas szyfrowania systemu operacyjnego, po prostu szyfrujemy tutaj dyski danych.

W procedurach założono, że sprawdzono już wymagania wstępne w scenariuszach usługi Azure Disk Encryption na maszynach wirtualnych z systemem Linux i w przewodniku Szybki start: tworzenie i szyfrowanie maszyny wirtualnej z systemem Linux przy użyciu interfejsu wiersza polecenia platformy Azure.

Wersja dwuprzepustowa usługi Azure Disk Encryption znajduje się na ścieżce wycofania i nie powinna być już używana w nowych szyfrach.

Ogólne kroki

W przypadku korzystania z konfiguracji "on-crypt" użyj procesu opisanego w poniższych procedurach.

Uwaga

Używamy zmiennych w całym artykule. Zastąp odpowiednio wartości.

Wdrażanie maszyny wirtualnej

Poniższe polecenia są opcjonalne, ale zalecamy ich zastosowanie na nowo wdrożonej maszynie wirtualnej.

Program PowerShell:

New-AzVm -ResourceGroupName ${RGNAME} `
-Name ${VMNAME} `
-Location ${LOCATION} `
-Size ${VMSIZE} `
-Image ${OSIMAGE} `
-Credential ${creds} `
-Verbose

Interfejs wiersza polecenia platformy Azure:

az vm create \
-n ${VMNAME} \
-g ${RGNAME} \
--image ${OSIMAGE} \
--admin-username ${username} \
--admin-password ${password} \
-l ${LOCATION} \
--size ${VMSIZE} \
-o table

Dołączanie dysków do maszyny wirtualnej

Powtórz następujące polecenia dla $N liczby nowych dysków, które chcesz dołączyć do maszyny wirtualnej.

Program PowerShell:

$storageType = 'Standard_LRS'
$dataDiskName = ${VMNAME} + '_datadisk0'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $LOCATION -CreateOption Empty -DiskSizeGB 5
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName ${RGNAME}
$vm = Get-AzVM -Name ${VMNAME} -ResourceGroupName ${RGNAME}
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 0
Update-AzVM -VM ${VM} -ResourceGroupName ${RGNAME}

Interfejs wiersza polecenia platformy Azure:

az vm disk attach \
-g ${RGNAME} \
--vm-name ${VMNAME} \
--name ${VMNAME}datadisk1 \
--size-gb 5 \
--new \
-o table

Sprawdź, czy dyski są dołączone do maszyny wirtualnej

Program PowerShell:

$VM = Get-AzVM -ResourceGroupName ${RGNAME} -Name ${VMNAME}
$VM.StorageProfile.DataDisks | Select-Object Lun,Name,DiskSizeGB

Lista dołączonych dysków w programie PowerShell

Interfejs wiersza polecenia platformy Azure:

az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table

Lista dołączonych dysków w interfejsie wiersza polecenia platformy Azure

Portal:

Lista dołączonych dysków w portalu

System operacyjny:

lsblk

Lista dołączonych dysków w systemie operacyjnym

Konfigurowanie dysków do szyfrowania

Ta konfiguracja jest wykonywana na poziomie systemu operacyjnego. Odpowiednie dyski są skonfigurowane do tradycyjnego szyfrowania za pomocą usługi Azure Disk Encryption:

  • Systemy plików są tworzone na dyskach.
  • Tymczasowe punkty instalacji są tworzone w celu zainstalowania systemów plików.
  • Systemy plików są konfigurowane na /etc/fstab do instalacji w czasie rozruchu.

Sprawdź literę urządzenia przypisaną do nowych dysków. W tym przykładzie używamy czterech dysków danych.

lsblk

Dyski danych dołączone do systemu operacyjnego

Tworzenie systemu plików na każdym dysku

To polecenie iteruje tworzenie systemu plików ext4 na każdym dysku zdefiniowanym w części "in" cyklu "for".

for disk in c d e f; do echo mkfs.ext4 -F /dev/sd${disk}; done |bash

Tworzenie systemu plików ext4

Znajdź powszechnie unikatowy identyfikator (UUID) ostatnio utworzonych systemów plików, utwórz folder tymczasowy, dodaj odpowiednie wpisy na /etc/fstab i zainstaluj wszystkie systemy plików.

To polecenie iteruje również na każdym dysku zdefiniowanym w części "in" cyklu "for":

for disk in c d e f; do diskuuid="$(blkid -s UUID -o value /dev/sd${disk})"; \
mkdir /tempdata${disk}; \
echo "UUID=${diskuuid} /tempdata${disk} ext4 defaults,nofail 0 0" >> /etc/fstab; \
mount -a; \
done

Sprawdź, czy dyski są prawidłowo zainstalowane

lsblk

Lista zainstalowanych tymczasowych systemów plików

Sprawdź również, czy dyski są skonfigurowane:

cat /etc/fstab

Informacje o konfiguracji za pośrednictwem pliku fstab

Szyfrowanie dysków danych

Program PowerShell przy użyciu klucza szyfrowania klucza (KEK):

$sequenceVersion = [Guid]::NewGuid()
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGNAME `
-VMName ${VMNAME} `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $KeyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $KeyVaultResourceId `
-VolumeType 'DATA' `
-EncryptFormatAll `
-SequenceVersion $sequenceVersion `
-skipVmBackup;

Interfejs wiersza polecenia platformy Azure przy użyciu klucza KEK:

az vm encryption enable \
--resource-group ${RGNAME} \
--name ${VMNAME} \
--disk-encryption-keyvault ${KEYVAULTNAME} \
--key-encryption-key ${KEYNAME} \
--key-encryption-keyvault ${KEYVAULTNAME} \
--volume-type "DATA" \
--encrypt-format-all \
-o table

Weryfikowanie stanu szyfrowania

Przejdź do następnego kroku tylko wtedy, gdy wszystkie dyski są szyfrowane.

Program PowerShell:

Get-AzVmDiskEncryptionStatus -ResourceGroupName ${RGNAME} -VMName ${VMNAME}

Stan szyfrowania w programie PowerShell

Interfejs wiersza polecenia platformy Azure:

az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table

Stan szyfrowania w interfejsie wiersza polecenia platformy Azure

Portal:

Stan szyfrowania w portalu

Poziom systemu operacyjnego:

lsblk

Stan szyfrowania w systemie operacyjnym

Rozszerzenie doda systemy plików do /var/lib/azure_disk_encryption_config/azure_crypt_mount (stare szyfrowanie) lub do /etc/crypttab (nowe szyfrowanie).

Uwaga

Nie modyfikuj żadnego z tych plików.

Ten plik zajmie się aktywowanie tych dysków podczas procesu rozruchu, dzięki czemu LVM lub RAID mogą używać ich później.

Nie martw się o punkty instalacji w tym pliku. Usługa Azure Disk Encryption utraci możliwość instalacji dysków jako normalnego systemu plików po utworzeniu woluminu fizycznego lub urządzenia RAID na tych zaszyfrowanych urządzeniach. (Spowoduje to usunięcie formatu systemu plików użytego podczas procesu przygotowywania).

Usuwanie folderów tymczasowych i tymczasowych wpisów fstab

Odinstalowywanie systemów plików na dyskach, które będą używane jako część LVM.

for disk in c d e f; do umount /tempdata${disk}; done

Usuń wpisy /etc/fstab:

vi /etc/fstab

Sprawdź, czy dyski nie są zainstalowane i czy wpisy w /etc/fstab zostały usunięte

lsblk

Weryfikacja, czy tymczasowe systemy plików są niezainstalowane

Sprawdź, czy dyski są skonfigurowane:

cat /etc/fstab

Weryfikacja usunięcia tymczasowych wpisów fstab

Procedura szyfrowania LVM-on-crypt

Teraz, gdy dyski bazowe są szyfrowane, możesz utworzyć struktury LVM.

Zamiast używać nazwy urządzenia, użyj ścieżek /dev/mapper dla każdego z dysków, aby utworzyć wolumin fizyczny (na warstwie kryptografii na górze dysku, a nie na samym dysku).

Konfigurowanie maszyny LVM na podstawie zaszyfrowanych warstw

Tworzenie woluminów fizycznych

Zostanie wyświetlone ostrzeżenie z pytaniem, czy wyczyszczenie podpisu systemu plików jest ok. Kontynuuj, wprowadzając ciąg y lub użyj echa "y" , jak pokazano poniżej:

echo "y" | pvcreate /dev/mapper/c49ff535-1df9-45ad-9dad-f0846509f052
echo "y" | pvcreate /dev/mapper/6712ad6f-65ce-487b-aa52-462f381611a1
echo "y" | pvcreate /dev/mapper/ea607dfd-c396-48d6-bc54-603cf741bc2a
echo "y" | pvcreate /dev/mapper/4159c60a-a546-455b-985f-92865d51158c

Weryfikacja utworzenia woluminu fizycznego

Uwaga

Nazwy /dev/mapper/device należy zastąpić wartościami rzeczywistymi na podstawie danych wyjściowych lsblk.

Weryfikowanie informacji dotyczących woluminów fizycznych

pvs

Informacje dotyczące woluminów fizycznych

Tworzenie grupy woluminów

Utwórz grupę woluminów przy użyciu tych samych urządzeń, które już zainicjowały:

vgcreate vgdata /dev/mapper/

Sprawdź informacje dotyczące grupy woluminów

vgdisplay -v vgdata
pvs

Informacje dotyczące grupy woluminów

Tworzenie woluminów logicznych

lvcreate -L 10G -n lvdata1 vgdata
lvcreate -L 7G -n lvdata2 vgdata

Sprawdzanie utworzonych woluminów logicznych

lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2

Informacje dotyczące woluminów logicznych

Tworzenie systemów plików na podstawie struktur woluminów logicznych

echo "yes" | mkfs.ext4 /dev/vgdata/lvdata1
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata2

Tworzenie punktów instalacji dla nowych systemów plików

mkdir /data0
mkdir /data1

Dodaj nowe systemy plików do /etc/fstab i zainstaluj je

echo "/dev/mapper/vgdata-lvdata1 /data0 ext4 defaults,nofail 0 0" >>/etc/fstab
echo "/dev/mapper/vgdata-lvdata2 /data1 ext4 defaults,nofail 0 0" >>/etc/fstab
mount -a

Sprawdź, czy nowe systemy plików są zainstalowane

lsblk -fs
df -h

Zrzut ekranu przedstawia okno konsoli z systemami plików zainstalowanymi jako dane0 i data1.

Na tej odmianie elementu lsblk wyświetlamy listę urządzeń pokazujących zależności w odwrotnej kolejności. Ta opcja pomaga zidentyfikować urządzenia pogrupowane według woluminu logicznego zamiast oryginalnych /dev/sd[disk] nazw urządzeń.

Ważne jest, aby upewnić się, że opcja nofail została dodana do opcji punktu instalacji woluminów LVM utworzonych na urządzeniu zaszyfrowanym za pośrednictwem usługi Azure Disk Encryption. Zapobiega to zablokowaniu systemu operacyjnego podczas procesu rozruchu (lub w trybie konserwacji).

Jeśli nie używasz opcji nofail :

  • System operacyjny nigdy nie przejdzie do etapu, na którym jest uruchomione usługa Azure Disk Encryption, a dyski danych są odblokowywane i instalowane.
  • Zaszyfrowane dyski zostaną odblokowane na końcu procesu rozruchu. Woluminy LVM i systemy plików zostaną automatycznie zainstalowane do momentu ich odblokowania przez usługę Azure Disk Encryption.

Możesz przetestować ponowne uruchomienie maszyny wirtualnej i sprawdzić, czy systemy plików są również automatycznie instalowane po czasie rozruchu. Ten proces może potrwać kilka minut, w zależności od liczby i rozmiarów systemów plików.

Uruchom ponownie maszynę wirtualną i sprawdź po ponownym uruchomieniu

shutdown -r now
lsblk
df -h

Kroki dotyczące funkcji RAID-on-crypt

Teraz, gdy dyski bazowe są szyfrowane, możesz nadal tworzyć struktury RAID. Proces jest taki sam jak w przypadku LVM, ale zamiast używać nazwy urządzenia, użyj ścieżek /dev/mapper dla każdego dysku.

Konfigurowanie macierzy RAID na podstawie zaszyfrowanej warstwy dysków

mdadm --create /dev/md10 \
--level 0 \
--raid-devices=4 \
/dev/mapper/c49ff535-1df9-45ad-9dad-f0846509f052 \
/dev/mapper/6712ad6f-65ce-487b-aa52-462f381611a1 \
/dev/mapper/ea607dfd-c396-48d6-bc54-603cf741bc2a \
/dev/mapper/4159c60a-a546-455b-985f-92865d51158c

Informacje dotyczące skonfigurowanej macierzy RAID za pomocą polecenia mdadm

Uwaga

Nazwy /dev/mapper/device należy zastąpić rzeczywistymi wartościami na podstawie danych wyjściowych lsblk.

Sprawdzanie/monitorowanie tworzenia macierzy RAID

watch -n1 cat /proc/mdstat
mdadm --examine /dev/mapper/[]
mdadm --detail /dev/md10

Stan macierzy RAID

Tworzenie systemu plików na podstawie nowego urządzenia RAID

mkfs.ext4 /dev/md10

Utwórz nowy punkt instalacji dla systemu plików, dodaj nowy system plików do pliku /etc/fstab i zainstaluj go:

Uwaga

Ten cykl iteruje tylko na jednym urządzeniu w tym konkretnym przykładzie, jest zbudowany w ten sposób, aby był używany dla wielu urządzeń md w razie potrzeby.

for device in md10; do diskuuid="$(blkid -s UUID -o value /dev/${device})"; \
mkdir /raiddata; \
echo "UUID=${diskuuid} /raiddata ext4 defaults,nofail 0 0" >> /etc/fstab; \
mount -a; \
done

Sprawdź, czy nowy system plików jest zainstalowany:

lsblk -fs
df -h

Zrzut ekranu przedstawia okno konsoli z systemem plików zainstalowanym jako raiddata.

Ważne jest, aby upewnić się, że opcja nofail została dodana do opcji punktu instalacji woluminów RAID utworzonych na urządzeniu zaszyfrowanym za pośrednictwem usługi Azure Disk Encryption. Zapobiega to zablokowaniu systemu operacyjnego podczas procesu rozruchu (lub w trybie konserwacji).

Jeśli nie używasz opcji nofail :

  • System operacyjny nigdy nie przejdzie do etapu, na którym jest uruchomione usługa Azure Disk Encryption, a dyski danych są odblokowywane i instalowane.
  • Zaszyfrowane dyski zostaną odblokowane na końcu procesu rozruchu. Woluminy RAID i systemy plików zostaną automatycznie zainstalowane do momentu ich odblokowania przez usługę Azure Disk Encryption.

Możesz przetestować ponowne uruchomienie maszyny wirtualnej i sprawdzić, czy systemy plików są również automatycznie instalowane po czasie rozruchu. Ten proces może potrwać kilka minut, w zależności od liczby i rozmiarów systemów plików.

shutdown -r now

A kiedy można się zalogować:

lsblk
df -h

Następne kroki