Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
Oryginalny numer KB: 4038684
Uwaga 16.
CentOS, do których odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz CentOS End Of Life guidance (Wskazówki dotyczące zakończenia życia systemu CentOS).
Ten artykuł zawiera rozwiązanie problemu, w którym maksymalna pamięć maszyny wirtualnej z systemem Linux platformy Azure jest ograniczona do 64 GB w systemie Linux z wersją jądra przed 3.10.
Symptomy
Tworzysz maszynę wirtualną z systemem Linux, która ma więcej niż 64 GB pamięci na platformie Microsoft Azure. Okaże się, że rzeczywista przydzielona pamięć na maszynie wirtualnej z systemem Linux wynosi tylko 64 GB.
Uwaga 16.
Aby określić, czy pamięć została ograniczona do 64 GB, musisz sprawdzić dostępną pamięć na maszynie wirtualnej z systemem Linux. Na przykład użyj bezpłatnego polecenia -m . W witrynie Azure Portal zawsze jest wyświetlany pełny rozmiar pamięci przypisany do maszyny wirtualnej.
Przyczyna
Ten problem jest spowodowany usterką w jądrze systemu Linux w wersjach wcześniejszych niż 3.10. Usterka została usunięta w jądrze systemu Linux w wersji 3.10 lub nowszej.
Maszyny wirtualne na platformie Azure są hostowane w systemie Windows Server 2016 Hyper-V lub Windows Server 2012 R2 Hyper-V. Jeśli maszyna wirtualna jest uruchomiona na hoście funkcji Hyper-V systemu Windows Server 2012 R2, usterka nie jest manifestem, ponieważ maksymalny rozmiar fizycznej przestrzeni adresowej zapewnianej przez funkcję Hyper-V dla maszyn wirtualnych gościa wynosi 4 TB. Ale gdy maszyna wirtualna gościa jest uruchomiona na hoście funkcji Hyper-V systemu Windows Server 2016, maksymalny rozmiar przestrzeni adresowej fizycznej jest podniesiony do 16 TB. W tym scenariuszu manifesty błędów i powoduje, że gość systemu Linux zobaczy maksymalnie 64 GB pamięci. Wartość 64 GB jest kontrolowana przez wartości rejestrów typów pamięci (MTRR), które funkcja Hyper-V udostępnia gościowi.
Przypisanie maszyny wirtualnej do hosta z systemem Windows Server 2012 R2 lub Windows Server 2016 jest kontrolowane przez infrastrukturę platformy Azure i nie można wybrać użytkownika. Dlatego niektóre wdrożenia mogą napotkać ten problem, podczas gdy inne nie.
Rozwiązanie
Ta usterka występuje w wersji jądra systemu Linux w systemie SUSE Linux Enterprise Server (SLES) 11 SP4, Red Hat Enterprise Linux (RHEL) 6.x i CentOS 6.x. Jest on naprawiony w nowszych jądrach systemu Linux i nie występuje w systemach SLES 12, RHEL 7.x i CentOS 7.x.
W przypadku jądra, które mają usterkę, można obejść ten problem, dodając disable_mtrr_trim jako opcję wiersza rozruchu jądra. Firma Microsoft współpracuje z dostawcami naszych zatwierdzonych dystrybucji w celu zaktualizowania obrazów na platformie Azure w celu dodania disable_mtrr_trim jako opcji wiersza rozruchu jądra. Ta opcja wyłącza interpretację mtRR i usuwa limit 64 GB. Jeśli utworzysz nową maszynę wirtualną na podstawie obrazu, który został zaktualizowany w celu uwzględnienia tej opcji wiersza rozruchu jądra, nie wystąpi limit 64 GB, niezależnie od wersji hosta, w której wdrożono maszynę wirtualną.
W przypadku istniejących maszyn wirtualnych można ręcznie dodać tę samą opcję wiersza rozruchu jądra, wykonując następujące kroki.
W przypadku systemu RHEL/CentOS 6.x:ing:
Otwórz plik
/boot/grub/grub.conf
w edytorze tekstów.Dodaj parametr disable_mtrr_trim do wiersza polecenia jądra.
W pliku grub.conf będzie wiersz podobny do następującego:
kernel /vmlinuz-2.6.32-696.3.2.el6.x86_64 ro root=UUID=<ID>
Dodaj disable_mtrr_trim jako oddzielny parametr na końcu tego wiersza.
Zapisz i zamknij plik grub.conf.
Uruchom ponownie maszynę wirtualną.
Aby uzyskać więcej informacji, zobacz Plik konfiguracji menu Red Hat: GRUB.
W przypadku systemu SLES zapoznaj się z tematem SUSE: rozruch przy użyciu programu GRUB.
W przypadku debiana zapoznaj się z tematem Debian: Boot Parameters (Debian: parametry rozruchu).
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.
Zastrzeżenie dotyczące innych firm
Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.
Wyłączenie odpowiedzialności za kontakty z osobami trzecimi
Firma Microsoft udostępnia informacje kontaktowe innych firm, aby uzyskać dodatkowe informacje na temat tego tematu. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji kontaktowych innych firm.