Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri
Azure platform hizmet düzeyi sözleşmesi (SLA), Linux işletim sistemini çalıştıran sanal makineler (VM) için yalnızca onaylanan dağıtımlardan birini kullandığınızda geçerlidir. Onaylanan dağıtımlar için Azure Market önceden yapılandırılmış Linux görüntüleri sağlar. Daha fazla bilgi için bkz.
Topluluk tarafından desteklenen ve onaylanmamış dağıtımlar da dahil olmak üzere Azure'da çalışan diğer tüm dağıtımların bazı önkoşulları vardır.
Bu makale, Linux dağıtımınızı Azure'da çalıştırmaya yönelik genel yönergelere odaklanır. Her dağıtım farklı olduğundan bu makale kapsamlı olamaz. Bu makalede açıklanan tüm ölçütleri karşılasanız bile, linux sisteminizin düzgün çalışması için önemli ölçüde değişiklik yapmanız gerekebilir.
Genel Linux yükleme notları
Important
Bu makaledeki uzak NVMe hazırlama adımları isteğe bağlıdır. Bunları yalnızca uzak NVMe disk denetleyicisiyle dağıtmak istediğiniz bir görüntü oluşturuyorsanız tamamlayın. Hedef VM SCSI kullanıyorsa, uzak NVMe için etiketlenmiş her adımı atlayın ve standart ayarları koruyun. Uzak NVMe, bir Gen2 imajı ve desteklenen bir işletim sistemi sürümü gerektirir. Tam hedef VM boyutunun DiskControllerTypes özelliğini doğrulayın ve uzak NVMe için desteklenen işletim sistemi görüntülerini gözden geçirin. Denetleyici türünü yalnızca VM serisi oluşturma işleminden çıkarmayın.
Azure, Hyper-V sanal sabit disk (VHDX) biçimini desteklemez. Azure yalnızca sabit boyutlu VHD destekler. Hyper-V Yöneticisi'ni veya Convert-VHD cmdlet'ini kullanarak diski VHD biçimine dönüştürebilirsiniz. VirtualBox kullanıyorsanız, diski oluştururken varsayılan (Dinamik olarak ayrılmış) yerine Sabit boyut'a tıklayın.
Azure, Gen1 (BIOS önyüklemesi) ve Gen2 (UEFI önyüklemesi) sanal makineleri destekler.
Sanal dosya ayırma tablosu (VFAT) çekirdek modülü çekirdekte etkinleştirilmelidir.
VHD için izin verilen boyut üst sınırı 1.023 GB'tır.
Linux sistemini yüklerken Mantıksal Birim Yöneticisi (LVM) yerine standart bölümler kullanmanızı öneririz. LVM, birçok yükleme için varsayılandır.
Standart bölümlerin kullanılması, özellikle bir işletim sistemi diski sorun giderme için başka bir özdeş VM'ye bağlıysa, kopyalanan VM'lerle LVM adı çakışmalarını önler. Veri disklerinde LVM veya RAID kullanabilirsiniz.
Kullanıcı tanımlı işlev (UDF) dosya sistemlerini bağlamak için çekirdek desteği gereklidir. Azure’da ilk önyükleme sırasında, tedarik yapılandırması, konuğa bağlanan UDF biçimli ortamlar aracılığıyla Linux sanal makinesine iletilir. Azure Linux aracısı, yapılandırmasını okumak ve VM'yi sağlamak için UDF dosya sistemini bağlamalıdır.
2.6.37'den önceki Linux çekirdek sürümleri, daha büyük VM boyutlarına sahip Hyper-V üzerinde Tekdüzen Olmayan Bellek Erişimini (NUMA) desteklemez. Bu sorun öncelikli olarak yukarı akış Red Hat 2.6.32 çekirdeğini kullanan eski dağıtımları etkiler. Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504) ile düzeltildi.
2.6.37'den eski özel çekirdekler veya 2.6.32-504'ten eski RHEL tabanlı çekirdekler çalıştıran sistemler,
numa=offiçindeki çekirdek komut satırında önyükleme parametresini ayarlamalıdır. Daha fazla bilgi için bkz . Red Hat KB 436883.İşletim sistemi diskinde değiştirme bölümü yapılandırmayın. Linux aracısını, bu makalenin ilerleyen bölümlerinde açıklandığı gibi geçici kaynak diskinde bir takas dosyası oluşturacak şekilde yapılandırabilirsiniz.
Azure'da tüm VHD'lerin 1 MB (1024 x 1024 bayt) ile hizalanmış bir sanal boyutu olmalıdır. Ham diskten VHD'ye dönüştürürken, bu makalenin devamında açıklandığı gibi ham disk boyutunun dönüştürmeden önce 1 MB'ın katı olduğundan emin olun.
En güncel dağıtım sürümünü, paketleri ve yazılımları kullanın.
Kullanıcıları ve sistem hesaplarını, ortak anahtarları, hassas verileri, gereksiz yazılımları ve uygulamaları kaldırın.
Not
Cloud-init sürüm 21.2 veya üzeri UDF gereksinimini kaldırır. Ancak udf modülü etkinleştirilmeden, CD-ROM sağlama işlemi sırasında bağlanmaz; bu da özel verilerin uygulanmasını engeller. Geçici çözüm, kullanıcı verilerini uygulamaktır. Ancak, özel verilerden farklı olarak kullanıcı verileri şifrelenmez. Daha fazla bilgi için cloud-init belgelerindeki Kullanıcı veri biçimleri bölümüne bakın.
Hyper-V olmadan çekirdek modülleri yükleme
Azure, Hyper-V hiper yöneticisi üzerinde çalıştığından Linux için Azure'da belirli çekirdek modüllerinin çalıştırılması gerekir. Hyper-V dışında oluşturulmuş bir VM'niz varsa, Vm bir Hyper-V ortamında çalıştığını algılamadığı sürece, Linux yükleyicileri ilk RAM diskinde (initrd veya initramfs) Hyper-V sürücülerini içermeyebilir.
Linux görüntünüzü hazırlamak için farklı bir sanallaştırma sistemi (VirtualBox veya KVM gibi) kullanıyorsanız, başlangıç RAM diskinde en azından hv_vmbus ve hv_storvsc çekirdek modüllerinin kullanılabilir olması için initrd'yi yeniden oluşturmanız gerekebilir. Bu bilinen sorun yukarı akış Red Hat dağıtımına dayalı sistemlere ve büyük olasılıkla diğer sistemlere yöneliktir.
initrd veya initramfs görüntüsünü yeniden oluşturma mekanizması, dağıtıma bağlı olarak değişebilir. Uygun prosedür için dağıtımınızın belgelerine veya destek hizmetine başvurun.
mkinitrd yardımcı programını kullanarak initrd'ı yeniden oluşturmak için bir örnek:
Mevcut initrd görüntüsünü yedekleyin:
cd /boot sudo cp initrd-`uname -r`.img initrd-`uname -r`.img.bakhv_vmbusvehv_storvscçekirdek modüllerini kullanarak initrd'yi yeniden oluşturun:sudo mkinitrd --preload=hv_storvsc --preload=hv_vmbus -v -f initrd-`uname -r`.img `uname -r`
VHD'leri yeniden boyutlandırma
Azure'da VHD görüntülerinin 1 MB'a hizalanmış bir sanal boyutu olmalıdır. Normalde, Hyper-V aracılığıyla oluşturulan VHD'ler doğru hizalanır. VHD doğru hizalanmamışsa, VHD'nizden bir görüntü oluşturmaya çalıştığınızda aşağıdaki örneğe benzer bir hata iletisi alabilirsiniz:
The VHD http://<mystorageaccount>.blob.core.windows.net/vhds/MyLinuxVM.vhd has an unsupported virtual size of 21475270656 bytes. The size must be a whole number (in MBs).
Bu durumda Hyper-V Yöneticisi konsolunu veya Resize-VHD PowerShell cmdlet'ini kullanarak VM'yi yeniden boyutlandırın. Windows ortamında çalışmıyorsanız, VHD'yi dönüştürmek (gerekirse) ve yeniden boyutlandırmak için kullanmanızı qemu-img öneririz.
Not
qemu-img içindeki bilinen bir hata, QEMU'nun 2.2.1 sürümünde ve bazı sonraki sürümlerinde, uygunsuz biçimde biçimlendirilmiş bir VHD'ye neden olur. Sorun QEMU 2.6'da düzeltildi. 2.2.0 veya önceki bir sürümü veya 2.6 veya sonraki bir sürümü kullanmanızı öneririz.
qemu-imgveyavbox-managegibi araçlar kullanılarak VHD’nin doğrudan yeniden boyutlandırılması, önyüklenemez bir VHD’ye neden olabilir. Önce aşağıdaki kodu kullanarak VHD'yi ham disk görüntüsüne dönüştürmenizi öneririz.VM görüntüsü ham disk görüntüsü olarak oluşturulduysa bu adımı atlayabilirsiniz. VM görüntüsünü ham disk görüntüsü olarak oluşturmak, KVM gibi bazı hiper yöneticilerde varsayılan değerdir.
sudo qemu-img convert -f vpc -O raw MyLinuxVM.vhd MyLinuxVM.rawSanal boyutun 1 MB'a hizalanması için disk görüntüsünün gerekli boyutunu hesaplayın. Aşağıdaki Bash kabuk betiği, disk görüntüsünün sanal boyutunu belirlemek için
qemu-img infokullanır ve ardından boyutu bir sonraki 1 MB'a hesaplar:rawdisk="MyLinuxVM.raw" vhddisk="MyLinuxVM.vhd" MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "$rawdisk" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$(((($size+$MB-1)/$MB)*$MB)) echo "Rounded Size = $rounded_size"kullanarak
$rounded_sizeham diski yeniden boyutlandırın:sudo qemu-img resize MyLinuxVM.raw $rounded_sizeHam diski sabit boyutlu bir VHD'ye geri dönüştürün:
sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc MyLinuxVM.raw MyLinuxVM.vhdVeya 2.6'nın önceki QEMU sürümleriyle
force_sizeşu seçeneği kaldırın:sudo qemu-img convert -f raw -o subformat=fixed -O vpc MyLinuxVM.raw MyLinuxVM.vhd
Linux çekirdek gereksinimleri
Hyper-V ve Azure için Linux Integration Services (LIS) sürücüleri doğrudan yukarı akış Linux çekirdeğine katkıda bulunur. En son Linux çekirdek sürümünü (örneğin 3.x) içeren birçok dağıtımda bu sürücüler zaten kullanılabilir veya bu sürücülerin geri aktarılan sürümlerini kendi çekirdekleriyle birlikte sağlar.
LIS sürücüleri yeni düzeltmeler ve özelliklerle yukarı akış çekirdeğinde sürekli güncelleştiriliyor. Mümkün olduğunda, bu düzeltmeleri ve güncelleştirmeleri içeren onaylı bir dağıtım çalıştırmanızı öneririz.
RHEL sürüm 6.0 ile 6.3 arasında bir değişken çalıştırıyorsanız, Hyper-V için en son LIS sürücülerini yüklemeniz gerekir. RHEL 6.4+ (ve türevleri) ile başlayarak, LIS sürücüleri çekirdekte zaten bulunur, bu nedenle ek yükleme paketlerine ihtiyacınız yoktur.
Özel çekirdek gerekiyorsa, yeni bir çekirdek sürümü (örneğin, 3.8+) öneririz. Kendi çekirdeğini koruyan dağıtımlar veya satıcılar için LIS sürücülerini düzenli olarak yukarı akış çekirdeğinden özel çekirdeğinize geri aktarmanız gerekir.
Zaten nispeten yeni bir çekirdek sürümü çalıştırıyor olsanız bile, LIS sürücülerindeki tüm yukarı akış düzeltmelerini izlemenizi ve gerektiğinde bunları geri aktarmanızı kesinlikle öneririz. LIS sürücüsü kaynak dosyalarının konumları Linux çekirdek kaynak ağacındaki MAINTAINERS dosyasında belirtilir:
F: arch/x86/include/asm/mshyperv.h
F: arch/x86/include/uapi/asm/hyperv.h
F: arch/x86/kernel/cpu/mshyperv.c
F: drivers/hid/hid-hyperv.c
F: drivers/hv/
F: drivers/input/serio/hyperv-keyboard.c
F: drivers/net/hyperv/
F: drivers/scsi/storvsc_drv.c
F: drivers/video/fbdev/hyperv_fb.c
F: include/linux/hyperv.h
F: tools/hv/
VM'nin etkin çekirdeği aşağıdaki düzeltme eklerini içermelidir. Bu liste tüm dağıtımlar için tamamlanamaz.
- ata_piix: Diskleri varsayılan olarak Hyper-V sürücülerine erteleme
- storvsc: RESET yolundaki aktarım içi paketlerin hesabı
- storvsc: WRITE_SAME kullanımından kaçının
- storvsc: RAID ve sanal konak bağdaştırıcısı sürücüleri için WRITE SAME özelliğini devre dışı bırakma
- storvsc: NULL işaretçi başvurma hatasının düzeltilmesi
- storvsc: halka arabelleği hataları G/Ç donmasına neden olabilir
- scsi_sysfs: __scsi_remove_device öğesinin iki kez çalıştırılmasına karşı koru
Azure Linux Aracısı
Azure Linux Aracısı (waagent), Azure'da bir Linux sanal makinesi sağlar. Linux Aracısı GitHub deposunda en son sürümü alabilir, sorunları bildirebilir veya çekme istekleri gönderebilirsiniz.
Azure Linux Aracısı'nı kullanma konusunda dikkat edilmesi gereken bazı noktalar şunlardır:
- Linux aracısı Apache 2.0 lisansı altında yayınlanır. Birçok dağıtım zaten aracı için .rpm veya .deb paketleri sağlar. Bu paketleri kolayca yükleyebilir ve güncelleştirebilirsiniz.
- Azure Linux Aracısı için Python v2.6+ gerekir.
- Aracı ayrıca
python-pyasn1modülünü gerektirir. Çoğu dağıtım, bu modülü yüklenecek ayrı bir paket olarak sağlar. - Bazı durumlarda Azure Linux Aracısı NetworkManager ile uyumlu olmayabilir. Dağıtımlar tarafından sağlanan paketlerin (.rpm veya .deb) çoğu, NetworkManager'ı
waagentpaketiyle çakışacak şekilde yapılandırır. Bu durumlarda, Linux aracı paketini yüklediğinizde aracı NetworkManager'ı kaldıracaktır. - Azure Linux Aracısı desteklenen en düşük sürümde veya daha yüksek bir sürümde olmalıdır.
Not
udf ve vfat modüllerinin etkinleştirildiğinden emin olun. Modülün udf devre dışı bırakılması sağlama hatasına neden olur. Modülün vfat devre dışı bırakılması hem sağlama hem de önyükleme hatalarına neden olur. Cloud-init sürüm 21.2 veya üzeri, bu koşulların her ikisi de varsa UDF gerektirmeden VM'ler sağlayabilir:
- VM'yi parolaları değil SSH ortak anahtarlarını kullanarak oluşturdunuz.
- Özel veri sağlamadınız.
Genel Linux sistem gereksinimleri
GRUB veya GRUB2'deki çekirdek önyükleme satırını, tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesi için aşağıdaki parametreleri içerecek şekilde değiştirin. Bu iletiler, Azure destek ekibinin herhangi bir sorunun hata ayıklanmasına yardımcı olabilir.
GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"Varsa aşağıdaki parametreleri kaldırmanızı da öneririz:
rhgb quiet crashkernel=autoGrafik önyükleme ve sessiz önyükleme, tüm günlüklerin seri porta gönderilmesini istediğiniz bir bulut ortamında kullanışlı değildir. Gerekirse seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel, ancak bu parametre VM'deki kullanılabilir bellek miktarını en az 128 MB azaltır. Kullanılabilir belleği azaltmak, daha küçük VM boyutları için sorunlu olabilir./etc/default/grub düzenlemesini tamamladıktan sonra GRUB yapılandırmasını yeniden oluşturun. Yalnızca dağıtımınız için uygun komutu çalıştırın.
Debian veya Ubuntu tabanlı dağıtımlar için şunu çalıştırın:
sudo update-grubRHEL, Oracle Linux ve SUSE gibi sağlayan
grub2-mkconfigdağıtımlar için şunu çalıştırın:sudo grub2-mkconfig -o /boot/grub2/grub.cfgBunun yerine
grub-mkconfigsağlayan dağıtımlarda şunu çalıştırın:sudo grub-mkconfig -o /boot/grub/grub.cfgGRUB yapılandırma yolu UEFI yüklemeleri için farklılık gösterebilir. Dağıtımınız başka bir yol kullanıyorsa, bu dağıtım için belgelenen yolu kullanın.
Hyper-V modüllerini ilk RAM diskine ekleyin. Yalnızca dağıtımınız tarafından kullanılan araçlarla eşleşen yordamı çalıştırın.
- Dracut tabanlı dağıtım için şunu çalıştırın:
cd /boot sudo cp initramfs-<kernel-version>.img <kernel-version>.img.bak sudo dracut -f -v initramfs-<kernel-version>.img <kernel-version> --add-drivers "hv_vmbus hv_netvsc hv_storvsc"-
mkinitramfskullanan bir dağıtım için dracut yordamı yerine aşağıdaki yordamı çalıştırın:
cd /boot sudo cp initrd.img-<kernel-version> initrd.img-<kernel-version>.bak sudo mkinitramfs -o initrd.img-<kernel-version> <kernel-version> --with=hv_vmbus,hv_netvsc,hv_storvscYalnızca uzak bir NVMe disk denetleyicisi için bir görüntü oluşturuyorsanız, NVMe önyükleme desteğini yapılandırın ve doğrulayın. Aksi takdirde bu adımı atlayın. Tam komutlar dağıtıma göre farklılık gösterebilir.
Dağıtımınıza uygun yöntemi kullanarak initramfs'ı NVMe sürücüleriyle yeniden oluşturun.
Dracut tabanlı bir dağıtım için NVMe sürücülerini gelecekteki initramfs görüntülerinde kalıcı hale getirin ve geçerli initramfs'ı yeniden oluşturun:
sudo mkdir -p /etc/dracut.conf.d printf '%s\n' 'add_drivers+=" nvme nvme_core "' | sudo tee /etc/dracut.conf.d/azure-nvme.conf sudo dracut --forceInitramfs-tools tabanlı dağıtım için NVMe sürücülerini kalıcı hale getirin ve initramfs'ı yeniden oluşturun:
printf '%s\n' nvme nvme_core | sudo tee -a /etc/initramfs-tools/modules sudo update-initramfs -u -k allnvme_core.io_timeout=240içindeki mevcut çekirdek komut satırına/etc/default/grubekleyin ve ardından dağıtımınıza uygun komutu kullanarak GRUB yapılandırmasını yeniden oluşturun.Her iki NVMe sürücü modülünün de sistemde kullanılabilir olduğunu doğrulayın. Her iki komutu da çalıştırın:
modinfo nvme modinfo nvme_coreHer komutun modülü hakkında bilgi döndürmesi gerekir. Modüllerden biri bulunamazsa, devam etmeden önce dağıtımınızın belgelerini izleyerek modülü yükleyin veya etkinleştirin.
Her iki NVMe sürücüsünün de initramfs'a dahil olduğunu doğrulayın. Yalnızca dağıtımınız için komutunu çalıştırın.
Dracut tabanlı dağıtım için şunu çalıştırın:
sudo lsinitrd /boot/initramfs-$(uname -r).img | grep -E 'nvme(_core)?\.ko'Initramfs-tools tabanlı dağıtım için şunu çalıştırın:
sudo lsinitramfs /boot/initrd.img-$(uname -r) | grep -E 'nvme(_core)?\.ko'Çıkış, hem
nvmehem denvme_coresürücülerini göstermelidir. Aksi takdirde, devam etmeden önce dağıtımınızın belgelerine başvurun ve ilk RAM diskini yeniden oluşturun.
SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun. Bu yapılandırma genellikle varsayılandır.
Azure Linux Aracısı'nı yükleyin.
Azure'da Linux görüntüsü sağlamak için Azure Linux Aracısı gereklidir. Birçok dağıtım aracıyı .rpm veya .deb paketi olarak sağlar. Paket genellikle
WALinuxAgentveyawalinuxagentolarak adlandırılır. Azure Linux Aracısı kılavuzundaki adımları izleyerek aracıyı el ile de yükleyebilirsiniz.Not
udfvevfatmodüllerinin etkinleştirildiğinden emin olun. Bunları kaldırmak veya devre dışı bırakmak, sağlama veya önyükleme hatasına neden olur. Cloud-init sürüm 21.2 veya üzeri UDF gereksinimini kaldırır.Azure Linux Aracısını, cloud-init'i ve diğer gerekli yardımcı programları yükleyin. Yalnızca sisteminizde kullanılabilen paket yöneticisi için komutunu çalıştırın.
için
dnfkomutunu çalıştırın:sudo dnf install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemonsSisteminiz
yumyerinednfsağlıyorsa, önceki komuttayumyerinednfkullanın.için
aptkomutunu çalıştırın:sudo apt install walinuxagent cloud-init cloud-utils-growpart gdisk hyperv-daemonsiçin
zypperkomutunu çalıştırın:sudo zypper install python-azure-agent cloud-init cloud-utils-growpart gdisk hyperv-daemonsArdından aracıyı ve cloud-init'i tüm dağıtımlarda etkinleştirin:
sudo systemctl enable waagent.service sudo systemctl enable cloud-init.serviceİşletim sistemi diskinde değiştirme alanı oluşturmayın.
Yerel kaynak diski aracılığıyla takas alanını yapılandırmak için Azure Linux Aracısı'nı veya cloud-init'i kullanabilirsiniz. Azure bu kaynak diskini sağlamadan sonra VM'ye ekler. Yerel kaynak diski geçicidir ve VM'nin yetkisi kaldırıldığında boşaltılabilir.
Important
Bu yönergeler, uzak disk denetleyicisinin SCSI veya NVMe olup olmadığını uygular. Yerel geçici kaynak diski içeren bir VM boyutu gerektirir. Uzak disk denetleyicisi türü, bir kaynak diskin kullanılabilir olup olmadığını belirlemez.
Takas alanını yönetmek için bir yöntem seçin ve yapılandırın.
Azure Linux Aracısı'nı kullanmak için /etc/waagent.conf dosyasında aşağıdaki parametreleri değiştirin:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: Set this to your desired size.Bunun yerine cloud-init kullanmak için cloud-init'i sağlamayı işleyecek şekilde yapılandırın ve Azure Linux Aracısı'nın kaynak diskini biçimlendirmesini veya takas alanı oluşturmasını engelleyin:
sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confcloud-init’i seçtiyseniz, swap yapılandırmasının nasıl sağlanacağını seçin.
Her VM oluşturduğunuzda cloud-init yapılandırmasını
customdataaracılığıyla iletebilirsiniz. Bu yöntemi kullanın.Alternatif olarak, imaja bir cloud-init yönergesi ekleyin; böylece her VM oluşturulduğunda takas alanı yapılandırılır. Bu yöntemi kullanmak için bir .cfg dosyası oluşturun:
echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' | sudo tee -a /etc/systemd/system.conf cat << EOF | sudo tee /etc/cloud/cloud.cfg.d/00-azure-swap.cfg #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Sağlamayı işlemek için cloud-init'i yapılandırın:
cloud-init için
waagentyapılandırın:sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confBelirli bir sanal makineyi taşıyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız,
Provisioning.Agent=disabledyapılandırmasında olarak ayarlayın.Bağlantı noktalarını yapılandırın:
echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfgAzure veri kaynağını yapılandırın:
echo "Allow only Azure datasource, disable fetching network setting via IMDS" cat << EOF | sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOFBirini yapılandırdıysanız mevcut takas dosyasını kaldırın:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swap file by default swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fiCloud-init günlüğünü yapılandırma:
echo "Add console log file" cat << EOF | sudo tee -a /etc/cloud/cloud.cfg.d/05_logging.cfg # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
Sanal makinenin kaynaklarını kaldırmadan önce disk bağlama yapılandırmasını doğrulayın. Bu doğrulama hem SCSI hem de uzak NVMe görüntüleri için geçerlidir.
/etc/fstaböğesini gözden geçirin. Veya gibi/dev/sd*/dev/nvme*cihaz adlarını kullanmayın çünkü cihaz adları yeniden başlatmalar arasında veya disk denetleyicisi değiştiğinde değişebilir. Bunun yerine dosya sistemi UUID'lerini veya diğer kalıcı tanımlayıcıları kullanın./etc/fstabiçindeki girdilerle karşılaştırabilmeniz için blok cihazlarını ve kalıcı tanımlayıcılarını listeleyin:sudo blkid/etc/fstabiçinde söz dizimi hatalarını, geçersiz bağlama seçeneklerini ve çözümlenemeyen referansları denetleyin:sudo findmnt --verify --verboseYalnızca uzak NVMe disk denetleyicisi için görüntü oluşturuyorsanız, yapılandırılan G/Ç zaman aşımını doğrulayın. Kaynak VM şu anda NVMe kullanıyorsa şunu çalıştırın:
cat /sys/module/nvme_core/parameters/io_timeoutDeğer olmalıdır
240. SCSI kaynak VM'leri bu çalışma zamanı parametresini kullanıma sunmayabilir; bu durumda, GRUB yapılandırmasında mevcutnvme_core.io_timeout=240olduğunu ve yeniden oluşturulmuş yapılandırmanın bunu içerdiğini doğrulayın.
Sanal makineyi kullanımdan çıkarmak için aşağıdaki komutları çalıştırın.
Dikkat
Belirli bir sanal makineyi taşıyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız deprovisioning adımını atlayın. komutu
waagent -force -deprovision+userçalıştırılırsa kaynak makine kullanılamaz duruma gelir. Bu adım yalnızca genelleştirilmiş bir görüntü oluşturmaya yöneliktir.sudo rm -f /var/log/waagent.log sudo cloud-init clean sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0VirtualBox'ta, çalıştırdıktan
waagent -force -deprovisionsonra şunu belirten[Errno 5] Input/output errorbir hata iletisi görebilirsiniz: . Bu hata iletisi kritik değildir; yok sayabilirsiniz.Sanal makineyi kapatın ve VHD'yi Azure'a yükleyin.
Sonraki adımlar
Azure CLI kullanarak özel diskten Linux VM oluşturma
SCSI'den NVMe'ye taşımanız gereken mevcut bir Azure VM için Linux ve Windows VM'lerini SCSI'den NVMe'ye dönüştürme seçeneğini kullanın. Mimari ve destek bilgileri için bkz. NVMe'ye genel bakış.