커널 업데이트 후 Citrix XenServer 7.1 CentOS 가상 시스템이 시작되지 않음

CentOS 7 VM 코어를 업데이트하면 XenServer VM 모니터에서 새 코어가 중지됩니다.XenServer 7.1 버전을 계속 사용하고 있습니다.
작업 코어 버전, yum update 이전3.10.0-693, yum update 이후3.10.0-1127.19.1
이 문제는 내가 업데이트한 커널에 spectre/meltdown 패치가 있기 때문이다.그러나 XenServer 7에는 없습니다. 이러한 차이는 커널 부트 문제를 야기합니다.흥미로운 것은 이 문제는 CentOS 가상 시스템에만 영향을 미친다는 것이다.다른 Ubuntu 서버는 문제 없이 업데이트를 실행할 수 있지만 CentOS 가상 시스템은 호스트를 업데이트해야 합니다. 그렇지 않으면 작업이 중단됩니다.
이 문제를 해결하려면 XenServer를 최신 버전으로 업데이트해야 합니다. 그렇지 않으면 사용할 수 있는 패치가 있으면 설치해야 합니다.
XenServer 7.1 패치에 대한 링크입니다.https://support.citrix.com/article/CTX230788
XenServer 7.1을 업그레이드하려면 먼저 Citrix 라이센스가 있어야 합니다.그러나 이후의 대규모 안전 문제로 7.2 버전에서'무료'패치가 발표되었다.
그러나 이전 버전인 7.1 버전의 XenServer 버전을 실행하는 경우 XenServer를 최신 버전으로 업데이트하는 것 외에는 선택할 수 없습니다.
또한 CentOS의 새 커널 버전에서 부트 문제가 해결되었으므로 나중에 검토하겠습니다.

녹아내리고 유령의 구멍은 무엇입니까?


https://spectreattack.com
가상 시스템에 액세스할 수 있는 사용자는 가상 시스템 자체 이외의 메모리를 읽을 수 있으므로 동일한 물리적 호스트의 다른 가상 시스템에서 데이터를 읽을 수 있습니다.공격자는 가상 머신의 다른 응용 프로그램 빈틈 공격(웹 서버 등)을 통해 들어갈 수 있습니다.

나는 영향을 받았습니까?


Meldown은 Intel CPU에서만 설계 결함을 사용합니다.이것은 Xen sec 팀에서 SP3(악성 데이터 캐시 로드라고도 함)라고 합니다.
다음 도구를 사용할 때만 영향을 받습니다.
  • 64비트 PV형 VM(HVM/PVHVM은 영향을 받지 않음!)
  • Intel CPU(AMD 칩 설계가 다소 다르고 영향을 받지 않음)
  • 신뢰할 수 없는 가상 머신, 즉 가상 머신에 접근할 수 있는 신뢰할 수 없는 사용자(심지어 비root!)
  • 모든 XenServer 버전이 영향을 받음
  • 64-bits PV guests are vulnerable because guest and hypervisor share the same address space, but with different privileges. HVM aren't.


    위험 완화:


    모든 가상 머신을 PV 에서 HVM 로 마이그레이션하거나 XenServer를 최신 버전으로 업그레이드하거나 패치를 설치합니다.
    그러나 이전 버전의 XenServer를 실행한 경우 7.1 이전에 이 문제를 해결하려면 XenServer를 업데이트해야 합니다.
    CentOS 7 부트 문제로 돌아갑니다.
    최신 CentOS 커널 버전에서 부트 문제가 해결된 것 같습니다.만약 XenServer가 최신 패치라면 가상 머신에는 아무런 문제가 없을 것입니다.하지만 저는 XenServer를 업데이트하지 않았기 때문에 현재 최신 CentOS 7 코어를 설치하거나 이전에 실행된 낡은 코어로 강등합니다.

    커널 버전 업그레이드


    먼저 추가ELRepo Repository.
    시스템에 ELRepo gpg 키를 추가합니다.
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    

    This is important – CentOS will not allow the installation of an unsigned software package. The GPG key provides a digital signature to verify that the software is authentic.


    이제 새 ELRepo 저장소를 추가합니다.
    rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    
    완료되면 시스템에서 활성화된 모든 저장소를 확인하고 ELRepo가 목록에 있는지 확인합니다.
    yum repolist
    
    yum --enablerepo=elrepo-kernel install kernel-ml
    
    코어 ml - 메인 라인 버전을 표시하며 지원 기간이 짧지만 업데이트가 빈번합니다.
    또는 설치(ml 또는 lt 설치)
    yum --enablerepo=elrepo-kernel install kernel-lt
    
    커널 lt - 안정적인 장기 지원 버전을 나타냅니다.
    시스템의 모든 기존 코어 버전을 나열합니다.
    awk -F\' /^menuentry/{print\$2} /etc/grub2.cfg
    
    CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.18.2.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-c848e02bc90943f7a4daa50b09df4) 7 (Core)
    
    CentOS 최신 커널 버전4.4.234-1을 설치했습니다.이제 기본 커널로 설정합니다.

    기본 커널 버전 설정


    먼저 기존의 커널 버전을 모두 열거합니다.
    awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
    
    CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.18.2.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-c848e02bc90943f7a4daa50b09df4) 7 (Core)
    

    NOTE: The first entry is denoted as Zero. Let us modify the Kernel Version to 4.4.234-1 which is at line number 1 but denoted as entry 0.

    Set default kernel.
    grub2-set-default 0
    
    다음으로 Rebuild grub.cfg 명령'gurb2-mkconfig'을 사용하여 아카이빙합니다.
    grub2-mkconfig -o /boot/grub2/grub.cfg
    

    기본 커널 버전 확인
    cat /boot/grub2/grubenv |grep saved
    
    saved_entry=CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
    
    서버 재부팅
    reboot
    
    상술한 해결 방안은 안내 문제를 해결할 것이다.
    CentOS 커널을 최신 버전으로 업데이트하지 않고 기존 커널에서 시작하려면 시스템을 다시 시작하고 grub menu 에서 이전에 정상적으로 작동하던 커널 버전을 선택한 다음 enter 을 선택하고 다음 절차를 따르십시오.
    기본 커널 버전을 설정하지만, 먼저 모든 기존 커널 버전을 표시합니다.
    awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
    
    CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.18.2.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-c848e02bc90943f7a4daa50b09df4) 7 (Core)
    

    NOTE: The first entry is denoted as Zero. So currently the Server is booted to 0th entry as per the above command output. Let us modify the Kernel Version to 3.10.0-693 which is at line number 4 but denoted as entry 3.

    Set default kernel.
    grub2-set-default 3
    
    다음으로 Rebuild grub.cfg 명령'gurb2-mkconfig'을 사용하여 아카이빙합니다.
    grub2-mkconfig -o /boot/grub2/grub.cfg
    

    기본 커널 버전 확인
    cat /boot/grub2/grubenv | grep saved
    
    saved_entry=CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    
    서버 재부팅
    reboot
    

    좋은 웹페이지 즐겨찾기