Mengonfigurasi LVM dan RAID pada perangkat terenkripsi

Berlaku untuk: ✔️ VM Linux ✔️ Set skala fleksibel

Artikel ini adalah proses langkah demi langkah tentang cara melakukan Manajemen Volume Logis (LVM) dan RAID pada perangkat terenkripsi. Proses ini berlaku untuk lingkungan berikut:

  • Distribusi Linux
    • RHEL 7.6
    • Ubuntu 18.04
    • SUSE 12+
  • Ekstensi single-pass Azure Disk Encryption
  • Ekstensi dual-pass Azure Disk Encryption

Skenario

Prosedur dalam artikel ini mendukung skenario berikut:

  • Mengonfigurasi LVM di atas perangkat terenkripsi (LVM-on-crypt)
  • Mengonfigurasi RAID di atas perangkat terenkripsi (LVM-on-crypt)

Setelah perangkat atau perangkat dasar dienkripsi, maka Anda dapat membuat struktur LVM atau RAID di atas lapisan terenkripsi tersebut.

Volume fisik (PV) dibuat di atas lapisan terenkripsi. Volume fisik digunakan untuk membuat grup volume. Anda membuat volume dan menambahkan entri yang diperlukan pada /etc/fstab.

Diagram lapisan struktur LVM

Dengan cara yang sama, perangkat RAID dibuat di atas lapisan terenkripsi pada disk. Sistem file dibuat di atas perangkat RAID dan ditambahkan ke /etc/fstab sebagai perangkat biasa.

Pertimbangan

Kami sarankan Anda menggunakan LVM-on-crypt. RAID adalah opsi ketika LVM tidak dapat digunakan karena keterbatasan aplikasi atau lingkungan tertentu.

Anda akan menggunakan opsi EncryptFormatAll. Untuk informasi selengkapnya tentang opsi ini, lihat Menggunakan fitur EncryptFormatAll untuk disk data di VM Linux.

Meskipun Anda dapat menggunakan metode ini ketika Anda juga mengenkripsi OS, kami hanya mengenkripsi drive data di sini.

Prosedur ini mengasumsikan bahwa Anda sudah meninjau prasyarat di skenario Azure Disk Encryption pada VM Linux dan di Mulai Cepat: Buat dan enkripsi VM Linux dengan Azure CLI.

Versi dual-pass Azure Disk Encryption berada pada jalur penghentian dan tidak boleh lagi digunakan pada enkripsi baru.

Langkah umum

Saat Anda menggunakan konfigurasi "on-crypt", gunakan proses yang diuraikan dalam prosedur berikut.

Catatan

Kami menggunakan variabel di seluruh artikel. Ganti nilai yang sesuai.

Menyebarkan VM

Perintah berikut bersifat opsional, tetapi kami sarankan Anda menerapkannya pada komputer virtual (VM) yang baru disebarkan.

PowerShell:

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

Azure CLI:

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

Pasang disk ke VM

Ulangi perintah berikut untuk $N sejumlah disk baru yang ingin Anda lampirkan ke VM.

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}

Azure CLI:

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

Pastikan disk terpasang pada VM

PowerShell:

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

Daftar disk terlampir di PowerShell

Azure CLI:

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

Daftar disk terlampir di Azure CLI

Portal:

Daftar disk terlampir di portal

OS:

lsblk

Daftar disk terlampir di OS

Mengonfigurasi disk yang akan dienkripsi

Konfigurasi ini dilakukan pada tingkat sistem operasi. Disk yang sesuai dikonfigurasi untuk enkripsi tradisional melalui Azure Disk Encryption:

  • Sistem file dibuat di atas disk.
  • Titik pemasangan sementara dibuat untuk memasang sistem file.
  • Sistem file dikonfigurasi pada /etc/fstab untuk dipasang pada waktu boot.

Periksa huruf perangkat yang ditetapkan ke disk baru. Dalam contoh ini, kita menggunakan empat disk data.

lsblk

Data disk yang terpasang ke OS

Membuat sistem file di atas setiap disk

Perintah ini mengulang pembuatan sistem file ext4 pada setiap disk yang ditentukan pada bagian "in" dari siklus "for".

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

Pembuatan sistem file ext4

Temukan pengidentifikasi unik universal (UUID) dari sistem file yang baru-baru ini Anda buat, buat folder sementara, tambahkan entri yang sesuai pada /etc/fstab, dan pasang semua sistem file.

Perintah ini juga mengulang pada setiap disk yang ditentukan pada bagian "in" dari siklus "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

Pastikan disk dipasang dengan benar

lsblk

Daftar sistem file sementara yang terpasang

Pastikan juga disk dikonfigurasi:

cat /etc/fstab

Informasi konfigurasi melalui fstab

Mengenkripsi disk data

PowerShell menggunakan kunci enkripsi kunci (KEK):

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

Azure CLI menggunakan 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

Periksa status enkripsi

Lanjutkan ke langkah berikutnya jika semua disk dienkripsi.

PowerShell:

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

Status enkripsi di PowerShell

Azure CLI:

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

Status enkripsi di Azure CLI

Portal:

Status enkripsi di portal

Tingkat OS:

lsblk

Status enkripsi di OS

Ekstensi akan menambahkan sistem file ke /var/lib/azure_disk_encryption_config/azure_crypt_mount (enkripsi lama) atau ke /etc/crypttab (enkripsi baru).

Catatan

Jangan ubah file ini.

File ini akan mengurus upaya aktivasi disk ini selama proses boot sehingga LVM atau RAID dapat menggunakannya nanti.

Jangan khawatir tentang titik pemasangan pada file ini. Azure Disk Encryption akan kehilangan kemampuan untuk memasang disk sebagai sistem file normal setelah kami membuat volume fisik atau perangkat RAID di atas perangkat terenkripsi tersebut. (Upaya ini akan menghapus format sistem file yang kami gunakan selama proses persiapan.)

Menghapus folder sementara dan entri fstab sementara

Anda melepas sistem file pada disk yang akan digunakan sebagai bagian dari LVM.

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

Dan hapus entri /etc/fstab:

vi /etc/fstab

Pastikan bahwa cakram tidak dipasang dan entri pada /etc/fstab dihapus

lsblk

Verifikasi bahwa sistem file sementara tidak dipasang

Dan pastikan disk dikonfigurasi:

cat /etc/fstab

Verifikasi bahwa entri fstab sementara dihapus

Langkah-langkah untuk LVM-on-crypt

Sekarang setelah disk dasar dienkripsi, Anda dapat membuat struktur LVM.

Daripada menggunakan nama perangkat, gunakan jalur /dev/mapper untuk setiap disk untuk membuat volume fisik (pada lapisan crypt di atas disk, bukan pada disk itu sendiri).

Mengonfigurasi LVM di atas lapisan terenkripsi

Membuat volume fisik

Anda akan mendapatkan peringatan yang menanyakan apakah tidak apa-apa untuk menghapus tanda tangan sistem file. Lanjutkan dengan memasukkan y, atau gunakan echo "y" seperti yang ditampilkan:

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

Verifikasi bahwa volume fisik dibuat

Catatan

Nama /dev/mapper/device di sini perlu diganti dengan nilai aktual Anda berdasarkan output lsblk.

Verifikasi informasi untuk volume fisik

pvs

Informasi untuk volume fisik

Membuat grup volume

Membuat grup volume dengan menggunakan perangkat yang sama yang sudah diinisialisasi:

vgcreate vgdata /dev/mapper/

Memeriksa informasi untuk grup volume

vgdisplay -v vgdata
pvs

Informasi untuk grup volume

Membuat volume logis

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

Memeriksa volume logis yang dibuat

lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2

Informasi untuk volume logis

Membuat sistem file di atas struktur untuk volume logis

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

Membuat titik pemasangan untuk sistem file baru

mkdir /data0
mkdir /data1

Tambahkan sistem file baru ke /etc/fstab dan pasang sistem file tersebut

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

Pastikan sistem file baru sudah terpasang

lsblk -fs
df -h

Cuplikan layar menampilkan jendela konsol dengan sistem file yang dipasang sebagai data0 dan data1.

Pada variasi lsblkini, kami mencantumkan perangkat yang menampilkan dependensi dalam urutan terbalik. Opsi ini membantu mengidentifikasi perangkat yang dikelompokkan menurut volume logika, bukan nama perangkat asli /dev/sd[disk].

Penting untuk memastikan bahwa opsi nofail ditambahkan ke opsi titik pemasangan volume LVM yang dibuat di atas perangkat terenkripsi melalui Azure Disk Encryption. Ini mencegah OS terjebak selama proses boot (atau dalam mode pemeliharaan).

Jika Anda tidak menggunakan opsi nofail:

  • OS tidak akan pernah masuk ke tahap ketika Azure Disk Encryption dimulai dan disk data dibuka dan dipasang.
  • Disk terenkripsi akan dibuka di akhir proses boot. Volume dan sistem file LVM akan dipasang secara otomatis sampai Azure Disk Encryption membukanya.

Anda dapat menguji reboot VM dan memvalidasi bahwa sistem file juga secara otomatis dipasang setelah waktu boot. Proses ini mungkin memakan waktu beberapa menit, tergantung pada jumlah dan ukuran sistem file.

Reboot VM dan verifikasi setelah reboot

shutdown -r now
lsblk
df -h

Langkah-langkah untuk RAID-on-crypt

Sekarang setelah disk dasar dienkripsi, Anda dapat melanjutkan membuat struktur RAID. Prosesnya sama dengan yang dilakukan untuk LVM, tetapi menggunakan nama perangkat, serta menggunakan jalur /dev/mapper untuk setiap disk.

Mengonfigurasi RAID di atas lapisan terenkripsi pada disk

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

Informasi untuk RAID yang dikonfigurasi melalui perintah mdadm

Catatan

Nama /dev/mapper/device di sini perlu diganti dengan nilai aktual Anda, berdasarkan output lsblk.

Memeriksa/memantau pembuatan RAID

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

Status RAID

Membuat sistem file di atas perangkat RAID baru

mkfs.ext4 /dev/md10

Buat titik pemasangan baru untuk sistem file, tambahkan sistem file baru ke /etc/fstab, dan pasang:

Catatan

Siklus ini hanya berulang pada satu perangkat untuk contoh khusus ini, dibangun dengan cara ini untuk digunakan untuk beberapa perangkat md jika diperlukan.

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

Pastikan sistem file baru telah terpasang:

lsblk -fs
df -h

Cuplikan layar menunjukkan jendela konsol dengan sistem file yang dipasang sebagai raiddata.

Penting untuk memastikan bahwa opsi nofail ditambahkan ke opsi titik pemasangan volume LVM yang dibuat di atas perangkat terenkripsi melalui Azure Disk Encryption. Ini mencegah OS terjebak selama proses boot (atau dalam mode pemeliharaan).

Jika Anda tidak menggunakan opsi nofail:

  • OS tidak akan pernah masuk ke tahap ketika Azure Disk Encryption dimulai dan disk data dibuka dan dipasang.
  • Disk terenkripsi akan dibuka di akhir proses boot. Volume dan sistem file LVM akan dipasang secara otomatis sampai Azure Disk Encryption membukanya.

Anda dapat menguji reboot VM dan memvalidasi bahwa sistem file juga secara otomatis dipasang setelah waktu boot. Proses ini mungkin memakan waktu beberapa menit, tergantung pada jumlah dan ukuran sistem file.

shutdown -r now

Dan kapan Anda dapat masuk:

lsblk
df -h

Langkah berikutnya