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.
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
Interfejs wiersza polecenia platformy Azure:
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
Portal:
System operacyjny:
lsblk
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
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
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
Sprawdź również, czy dyski są skonfigurowane:
cat /etc/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}
Interfejs wiersza polecenia platformy Azure:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portal:
Poziom systemu operacyjnego:
lsblk
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
Sprawdź, czy dyski są skonfigurowane:
cat /etc/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
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
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
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
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
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
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
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
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