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.
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
Azure CLI:
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
Portal:
OS:
lsblk
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
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
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
Pastikan juga disk dikonfigurasi:
cat /etc/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}
Azure CLI:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portal:
Tingkat OS:
lsblk
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
Dan pastikan disk dikonfigurasi:
cat /etc/fstab
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
Catatan
Nama /dev/mapper/device di sini perlu diganti dengan nilai aktual Anda berdasarkan output lsblk.
Verifikasi informasi untuk volume fisik
pvs
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
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
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
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
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
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
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