Linux 검색 도구 사용

Migrate for Anthos는 Linux VM 워크로드에서 실행하는 셀프 서비스 도구를 제공하여 컨테이너의 마이그레이션에 적합한 워크로드를 결정합니다.

이 도구는 VM의 분석 결과를 설명하는 보고서를 출력하며, 마이그레이션 전에 해결해야 하는 문제와 전반적인 적합성 평가를 설명합니다.

  • 매우 적합
  • 적합하며 일부 수동 작업 필요
  • 마이그레이션하기 전에 낮은 수준의 작업 필요
  • 마이그레이션하기 전에 중간 수준의 작업 필요
  • 마이그레이션하기 전에 높은 수준의 작업 필요
  • 적합하지 않음

도구가 VM의 전반적인 적합성 평가를 결정하는 방법에 대한 설명은 적합성 평가 계산을 참조하세요.

도구 작동 방식

Linux 검색 도구는 두 가지 고유 단계로 작동합니다.

  • 수집 단계 - m4a-fit-collect.sh라는 bash 스크립트가 마이그레이션할 Linux VM에 대한 정보를 수집하고 수집된 데이터를 tar 파일에 씁니다. 데이터 복사본은 나중에 마이그레이션 중에 사용할 수 있도록 VM 파일 시스템에 남아 있습니다.

  • 분석 단계 - m4a-fit-analysis 도구는 수집 단계의 출력을 파싱하고 일련의 규칙을 적용하고 도구의 결과를 설명하는 자세한 보고서와 함께 적합성 평가를 생성합니다. 보고서는 HTML 파일 또는 JSON 파일로 볼 수 있습니다.

수집 도구 및 분석 도구를 동일한 VM에서 실행할 수 있습니다. 하지만 VM이 여러 개 있으면 대신 각 VM에서 개별적으로 수집 도구를 실행한 후 각 VM에서 단일 분석용 머신으로 tar 파일을 업로드할 수 있습니다. m4a-fit-analysis 도구는 여러 tar 파일을 한 번에 처리하여 각 VM에 대해 적합성 평가 및 분석을 출력할 수 있습니다.

워크로드 마이그레이션과 통합

수집 단계 중에 Linux 검색 도구로 소스 VM에 대해 얻은 데이터는 Migrate for Anthos에서 VM의 마이그레이션 계획의 일부를 생성하는 데 사용할 수 있습니다.

예를 들어 Linux 검색 도구에서 수집한 데이터는 마이그레이션된 VM에 의해 노출되는 서비스 엔드포인트에 대한 정보를 검색하는 데 사용됩니다. 따라서 서비스 엔드포인트에 대한 정보를 자동으로 채우려면 소스 VM에서 도구를 실행해야 합니다. 자세한 내용은 서비스 엔드포인트 맞춤설정을 참조하세요.

적합성 평가 보고서 보기

m4a-fit-analysis 도구에서 자세한 보고서 출력을 보려면 다음 중 하나를 수행하세요.

  • 브라우저에서 HTML 파일 열기
  • Google Cloud Console에 JSON 파일 업로드

HTML 출력 보기

보고서를 보려면 브라우저에서 HTML 파일을 엽니다. 다음 이미지는 'my-vm'이라는 VM 평가 도구의 HTML 출력을 보여줍니다.

LDT의 HTML 출력입니다.

각 항목의 의미는 다음과 같습니다.

  • 테이블에는 VM에 대한 세부정보 링크를 포함하여 분석된 각 VM에 대한 행이 하나씩 포함됩니다.

  • 데이터 수집 날짜, 식별 OS, M4A 적합성 점수, 워크로드 유형 열에는 VM 및 분석 결과에 대한 요약 정보가 포함됩니다.

  • 추가 정보 열에는 리슨 포트, 마운트 지점, NFS 마운트 지점 및 기타 정보를 비롯해 각 VM에 대한 세부정보 링크가 있습니다.

  • 각 규칙 열에는 규칙 ID와 설명(예: 'A1-STO-1: 지원되지 않는 네트워크 마운트') 및 규칙이 VM에 적용된 결과가 표시됩니다. 값:

    • 감지되지 않음은 규칙에서 마이그레이션 문제가 감지되지 않음을 의미합니다.
    • 감지됨은 규칙이 VM의 마이그레이션 문제를 감지했음을 의미합니다. 감지됨을 클릭하여 규칙 출력에 대한 세부정보를 확인합니다.

Google Cloud Console에 JSON 파일 업로드

Google Cloud Console에서 보고서를 보려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 Migrate for Anthos 페이지를 엽니다.

    컨테이너로 마이그레이션 페이지로 이동

  2. 적합성 평가 탭을 선택합니다.

  3. 찾아보기를 선택한 다음 업로드할 JSON 파일을 선택합니다.

  4. 열기를 선택하여 보고서를 확인합니다.

    보고서에 다음이 표시됩니다.

    • 준비자, 평가일, 적합성 평가 도구 필드에는 보고서에 대한 요약 정보가 포함됩니다.
    • 마이그레이션 여정 분석 영역에는 다음이 표시됩니다.
      • 분석된 총 VM 수
      • 마이그레이션 또는 컨테이너화할 수 있는 VM 수
      • 마이그레이션할 준비가 되지 않은 VM 수
    • VM의 적합성 평가를 포함하는, 분석된 각 VM에 대한 하나의 행
  5. 평가된 VM 테이블에서 VM의 이름을 선택하여 수신 포트, 마운트 지점, NFS 마운트 지점 및 기타 정보와 같은 VM에 대한 세부정보를 확인합니다.

    선택한 VM의 경우 각 규칙 설명과 규칙 ID, VM에 규칙을 적용한 결과도 표시됩니다.

    LDT의 콘솔 출력입니다.

기본 요건

Linux 검색 도구는 다음과 같은 기본 요건을 충족해야 합니다.

  • 애플리케이션, 프로세스, 열린 포트를 검색할 수 있으려면 평가 중인 대상 VM이 실행 중이어야 합니다.

  • 분석 도구를 실행하는 데 사용되는 머신 m4a-fit-analysis,는 2.6.23 이후 Linux 커널 버전을 실행해야 합니다.

  • 수집 스크립트를 sudo로 실행해야 합니다.

도구 설치 및 실행

수집 스크립트 및 분석 도구를 다운로드해야 합니다. 다음 중 원하는 방법을 선택하면 됩니다.

  • 두 도구를 모두 단일 VM에 다운로드합니다.
  • VM이 여러 개 있으면 각 워크로드 VM에 수집 스크립트를 다운로드한 후 분석 도구로 분석할 수 있도록 수집한 데이터를 중앙 머신에 업로드합니다.

VM을 평가하려면 다음 안내를 따르세요.

  1. VM에 로그인합니다.

  2. 수집 스크립트 및 분석 도구를 위한 디렉터리를 만듭니다.

    mkdir m4a
    cd m4a
  3. 수집 스크립트를 VM에 다운로드하고 실행 파일로 만듭니다.

    wget https://anthos-migrate-release.storage.googleapis.com/v1.7.5/linux/amd64/m4a-fit-collect.sh
    chmod +x m4a-fit-collect.sh
  4. 분석 도구를 VM에 다운로드하고 실행 파일로 만듭니다.

    wget https://anthos-migrate-release.storage.googleapis.com/v1.7.5/linux/amd64/m4a-fit-analysis
    chmod +x m4a-fit-analysis
  5. VM에서 수집 스크립트를 실행합니다.

    sudo ./m4a-fit-collect.sh

    이 스크립트는 m4a-collect-machinename-timestamp.tar이라는 tar 파일을 현재 디렉터리와 /var/m4a/m4a-collect-timestamp.tar로 출력합니다.

    타임스탬프는 YYYY-MM-DD-hh-mm 형식입니다. tar 파일 형식에 대한 설명은 수집 스크립트 작업을 참조하세요.

    참고: 중앙 머신에 분석 도구를 설치했으면 처리를 위해 해당 머신에 tar 파일을 업로드합니다.

  6. tar 파일에서 분석 도구를 실행합니다.

    ./m4a-fit-analysis m4a-collect-machinename-timestamp.tar

    도구는 두 개의 파일을 현재 디렉터리에 출력합니다.

    • analysis-report-timestamp.html이라는 HTML 파일. 타임스탬프는 YYYY-MM-DD-hh-mm 형식입니다. 보고서를 확인하려면 브라우저에서 이 파일을 확인합니다.

    • 출력의 JSON 형식이 포함된 analysis-report-timestamp.json이라는 JSON 파일. 이 파일을 Google Cloud Console에 대한 입력으로 사용할 수 있습니다.

    출력 파일에는 적합성 평가를 포함한 분석 정보가 포함됩니다. 자세한 내용은 보고서 파일 형식을 참조하세요.

    여러 tar 파일에 대해 분석 도구를 실행하려면 다음 명령어를 실행하면 됩니다.

    $ ./m4a-fit-analysis tarFile1 tarFile2 tarFile3 ...

    이 도구는 각 입력 tar 파일에 대해 단일 행을 출력 파일에 출력합니다. 보고서 내에서 VM에서 hostname 명령어를 실행하여 반환된 값을 의미하는 호스트 이름으로 각 VM을 식별할 수 있습니다.

    --verbosity 옵션을 사용하여 도구의 출력을 제어합니다. 옵션에는 panic, fatal, error(기본값), warning, info, debug, trace가 포함됩니다.

  7. 보고서를 보려면 브라우저에서 analysis-report-timestamp.html을 엽니다. 파일 형식에 대한 설명은 분석 도구 작업을 참조하세요.

수집 스크립트 작업

수집 스크립트는 일련의 Linux 명령어를 실행하여 소스 VM에 대한 정보를 수집하고 VM의 여러 파일에서도 정보를 수집합니다.

다음 섹션에서는 스크립트의 작업을 설명합니다. 텍스트 편집기에서 스크립트를 검토하여 더 자세한 정보를 볼 수도 있습니다.

스크립트 명령어

이 스크립트는 다음 Linux 명령어를 실행합니다.

명령어 설명
netstat -tlnp 모든 활성 리슨 포트를 나열합니다.
ps -o pid,user,%mem,comm,args -e 실행 중인 모든 사용자 프로세스의 목록입니다.
dpkg -l 설치된 패키지를 나열합니다(debian 기반).
rpm -qa 설치된 패키지 목록입니다(rpm 기반).
sestatus SELinux 상태를 가져옵니다.
lsmod 로드된 커널 모듈을 가져옵니다.
systemctl 실행 중인 서비스를 나열합니다(SystemD baseD).
service --status-all 실행 중인 서비스를 나열합니다(Init.d /Upstart 기반).
lsof /dev / 파일 및 하드웨어 기기에 열린 핸들을 나열합니다.
docker ps 실행 중인 Docker 컨테이너를 나열합니다.
ip addr NIC에 할당된 IP 주소를 나열합니다.
ifconfig NIC 구성 및 할당된 IP를 표시합니다.
blkid 블록 기기 속성을 나열합니다.
lsblk --json -p --output NAME,PARTFLAGS,PARTTYPE,UUID,LABEL,FSTYPE" 블록 기기를 나열합니다.

수집된 파일

스크립트가 다음 파일을 생성된 tar 파일에 복사합니다.

경로 설명
/etc/fstab 시작 시 마운트할 마운트 목록입니다.
/etc/hosts

/etc/resolv.conf

/etc/hostname

/etc/HOSTNAME

/proc/sys/kernel/hostname

호스트 및 DNS 데이터의 별칭입니다.
/etc/issue

/etc/*-release

Linux 배포판의 이름입니다.
/etc/network/interfaces

/etc/dhcp/dhclient-up-hooks

/etc/NetworkManager/conf.d/*

/etc/systemd/resolved.conf

/etc/sysconfig/network-scripts/*

/etc/sysconfig/network/*

구성된 인터페이스입니다.
/proc/cpuinfo CPU 정보
/proc/meminfo VM의 현재 메모리 사용량/총 사용량입니다.
/proc/self/mounts 현재 마운트된 기기입니다.
/etc/exports NFS 내보내기 목록입니다.
/opt/IBM/WebSphere/AppServer/properties/version/installed.xml Websphere 버전(기본적으로 설치된 경우)
/opt/IBM/WebSphere/AppServer/properties/version/WAS.product Websphere 정보(기본적으로 설치된 경우)
/sys/class/net/* NIC 정보

검사된 디렉터리

이 스크립트는 다음 디렉터리를 2단계까지 검색하여 설치된 유틸리티 및 소프트웨어의 디렉터리를 찾습니다.

  • /opt/
  • /usr/share/
  • /etc/
  • /usr/sbin/
  • /usr/local/bin/

수집 tar 파일 형식

m4a-fit-collect.sh 스크립트는 m4a-collect-machinename-timestamp.tar이라는 tar 파일을 현재 디렉터리와 /var/m4a/m4a-collect-timestamp.tar에 출력합니다.

필수는 아니지만 다음 명령어를 사용하여 tar 파일을 선택적으로 확장할 수 있습니다.

tar xvf m4a-collect-machinename-timestamp.tar

tar 파일의 형식은 다음과 같습니다.

collect.log # Log output of the script
files # Directory containing files with their full path from root. For example:
   |- etc/fstab
   |- etc/hostname
   |- etc/network/interfaces
   |- ...
commands # Output of commands run by the script:
   |- dpkg
   |- netstat
   |- ps
   |- ...
found_paths # Text file with the list of installation directories
machinename # Text file with machine name
ostype # Text file with operating system type (Linux)
timestamp # Text file with collection timestamp
version # Text file with version number of the script

분석 도구 작업

분석 도구는 VM에서 tar 파일의 콘텐츠를 검토하고 일련의 규칙을 적용하고 적합성 평가 및 분석 결과를 포함하는 다음 보고서 파일을 출력합니다.

  • analysis-report-timestamp.html이라는 HTML 파일을 현재 디렉터리에 출력합니다. 타임스탬프는 YYYY-MM-DD-hh-mm 형식입니다.

  • 출력의 JSON 형식이 포함된 analysis-report-timestamp.json이라는 JSON 파일. JSON 파일을 Google Cloud Console에 대한 입력으로 사용할 수 있습니다.

적합성 평가 계산

도구에서 감지된 규칙 위반은 최종 적합성 평가에 영향을 미치며 각 규칙에는 사전 정의된 심각도가 있습니다. 예를 들어 도구는 '규칙 A1-STO-3: SELinux 적용됨'에 따라 VM에서 사용 설정된 SELinux를 감지합니다. 이 규칙의 심각도는 '마이그레이션하기 전에 중간 수준의 작업 필요'이므로 도구의 최종 적합성 평가는 '마이그레이션하기 전에 중간 수준의 작업 필요'입니다.

도구가 여러 규칙 위반을 감지한 경우 심각도가 가장 높은 규칙만 최종 적합성 평가에 적용됩니다. 예를 들어 2개의 규칙 위반이 감지된 경우입니다.

  • 호환되지 않는 파일 시스템이 감지되었습니다(규칙 A1-STO-2: 호환되지 않는 파일 시스템). 심각도는 '적합하지 않음'입니다.

  • 사용 설정된 SELinux가 감지되었습니다. 심각도는 '마이그레이션 전에 중간 수준의 작업 필요'입니다.

도구는 두 가지 규칙 중 가장 심각한 적합성 평가만 반환합니다. 따라서 '적합하지 않음'을 반환합니다.

보고서 콘텐츠

보고서에는 각 VM에 대한 다음 정보가 포함됩니다.

필드 설명
VM 이름 VM의 이름입니다.
데이터 수집 날짜 분석의 타임스탬프입니다.
식별된 OS 운영 체제이며 항상 Linux입니다.
적합성 평가 적합성 평가입니다. 이 평가 해석에 대한 자세한 내용을 참조하세요.
워크로드 유형

감지된 경우 IBM WebSphere를 표시합니다.

추가 정보

다음을 포함하여 VM에 대한 정보 요약:

  • VM에서 발견된 리슨 포트
  • VM에서 감지된 디스크 마운트
  • VM의 NFS 마운트 지점

보고서에는 각 규칙을 VM에 적용한 결과도 포함됩니다.

규칙 ID 설명 심각도 참고
A1-STO-1 지원되지 않는 네트워크 마운트입니다. /etc/fstab 또는 /proc/self/mounts에 네트워크 마운트가 있는 경우 마이그레이션 계획에 CSI 볼륨을 수동으로 추가해야 합니다. 적합 배포 YAML에 NFS/CIFS 볼륨을 연결하는 방법은 외부 볼륨 마운트를 참조하세요.
A1-STO-2 호환되지 않는 파일 시스템 적합하지 않음 호환되지 않는 파일 시스템의 워크로드는 마이그레이션할 수 없습니다.
A1-STO-3 SELinux가 VM에 적용되었습니다. SELinux는 중첩된 컨테이너에서 잘 작동하지 않으므로 마이그레이션하기 전 이를 사용 중지하는 것이 좋습니다. 중간 수준의 작업 필요 마이그레이션하기 전 SELinux를 사용 중지하거나 apparmor 프로필을 수동으로 적용합니다.
A1-STO-4-5

NFS 공유를 내보냈습니다. 감지된 NFS 내보내기 파일 및 NFS 서버 커널 모듈이 로드됩니다.

각기 다른 심각도를 반환하는 두 개의 규칙이 적용됩니다.

  • A1-STO-4: NFS 서버가 감지됨: 중간 수준의 작업 필요
  • A1-STO-5: NFS 서버가 감지되고 워크로드 유형이 웹 서버임: 낮은 수준의 작업 필요
설명 참조 NFS 서버를 Cloud Filestore로 마이그레이션하세요.
A1-NET-1-3

0.0.0.0이 아닌 IP 주소에서 리스너가 발견되었으며 이는 특정 네트워크 인터페이스에 대한 결합이 감지되었음을 의미합니다. 특정 NIC(0.0.0.0, *, 또는 루프백 아님)에서 수신 대기 중인 포트가 있으면 일반적으로 다중 NIC 설정이 있음을 의미합니다.

각기 다른 심각도를 반환하는 세 개의 규칙이 적용됩니다.

  • A1-NET-1: IP 1개 감지됨: 적합
  • A1-NET-2: 2개 이상의 IP 감지됨: 낮은 수준의 작업 필요
  • A1-NET-3: 동일한 포트에서 수신 대기하는 IP가 두 개 이상 감지됨: 중간 수준의 작업 필요
설명 참조 Migrate for Anthos는 하나의 NIC만 지원하므로 VM이 하나의 NIC에서 리슨하도록 업데이트합니다.
A1-NET-4

여러 NIC 사용이 발견되었습니다. 도구는 /sys/class/net/DEVICE/operstate에 따라 심볼릭 링크에 해당하는 가상 기기 및 중지된 기기를 무시합니다.

보고서 세부정보에는 감지된 모든 NIC가 나열됩니다.

중간 수준의 작업 필요

소스 VM에 여러 NIC가 있으면 VM이 여러 IP 주소를 사용한다는 의미일 수 있습니다. 하지만 GKE와 Anthos는 여러 IP 주소를 지원하지 않습니다. 따라서 여러 NIC를 사용하는 소스 VM이 마이그레이션 후 올바르게 작동하지 않을 수 있습니다.

A1-APP-2

컨테이너 내부에서 DB 실행합니다. 마이그레이션에 적합하지 않은 데이터베이스 애플리케이션을 실행할 수 있는지 확인하세요.

  • Mysqld
  • Postgres
  • Mongodb
  • Redis-server
  • Cassandra
  • Elasticsearch
낮은 수준의 작업 필요 Cloud SQL로 마이그레이션하는 것이 좋습니다.
A1-APP-3 VM에서 실행되는 Docker입니다. 컨테이너 내부의 Docker 중첩은 지원되지 않습니다. dockerd가 실행 중인 경우: 적합 Migrate for Compute Engine을 사용하거나 GKE/Anthos에서 직접 컨테이너를 실행하는 것이 좋습니다.
A1-NET-5 정적 호스트의 사용입니다. /etc/hosts에서 감지된 정적 호스트 정의입니다. 적합 정적 호스트 수정에 대한 자세한 내용은 HostAliases로 Pod /etc/hosts에 항목 추가를 참조하세요.
A1-STO-7 lsof에서 감지된 블록 기기를 엽니다. 적합하지 않음 Migrate for Anthos와 호환되지 않습니다.

버전 기록

Migrate for Anthos 1.7.5 도구 변경사항

Migrate for Anthos 1.7.5 출시 버전에서는 새로운 기능이 추가되고 도구의 기존 기능이 변경되었습니다. 다음 표에서는 이러한 변경사항을 설명합니다.

변경 설명
이제 Google Cloud Console에서 적합성 평가 보고서를 볼 수 있습니다. Google Cloud Console에 JSON 파일을 업로드하여 봅니다.
열 이름 변경됨 생성된 보고서의 열 이름이 변경되었습니다.
여러 NIC 규칙이 추가됨 이제 도구에서 다중 NIC를 테스트합니다. 이 도구가 감지되면 '중간 수준의 작업 필요'라는 적합성 평가를 적용합니다.
A1-NET-3 규칙의 적합성 평가 변경 동일한 포트에서 수신 대기하는 IP가 두 개 이상 감지되는 경우, 이제 적합성 평가가 '중간 수준의 작업 필요'입니다.

Migrate for Anthos 1.7 도구 변경사항

Migrate for Anthos 1.7 출시 버전에서는 새로운 기능이 추가되고 도구의 기존 기능이 변경되었습니다. 다음 표에서는 이러한 변경사항을 설명합니다.

변경 설명
적합성 점수가 삭제되었습니다. 이전 버전에서는 적합성 점수가 0(적합하지 않음)에서 10(매우 적합)으로 설정되었습니다. 점수는 위와 같이 평가 값으로 바뀌었습니다.
모든 규칙의 가중치가 삭제되었습니다. 모든 규칙의 가중치를 삭제하고 평가 결과로 대체했습니다.
CSV 파일 보고서 형식이 HTML 및 JSON 파일로 대체되었습니다. HTML 파일을 사용하여 브라우저에서 보고서를 보고 JSON 파일을 데이터 시각화 도구의 입력으로 사용합니다. 자세한 내용은 HTML 보고서 파일 형식을 참조하세요.
m4a-fit-collect.sh에서 만든 tar 파일의 위치 이전 출시에서와 같이 스크립트는 tar 파일을 현재 디렉터리에 쓰지만 이제 /var/m4a/m4a-collect-timestamp.tar에도 씁니다.
m4a-fit-collect.sh에서 만든 tar 파일에 추가된 버전 파일 파일에는 스크립트의 버전이 포함됩니다.
감지된 워크로드 유형에 대한 새 열 추가 감지된 경우 IBM WebSphere를 표시합니다.
보고서의 각 VM에 대해 새로운 요약 필드를 추가했습니다. 이 필드에는 리슨 포트, 마운트 지점, NFS 마운트 지점 및 기타 정보가 포함됩니다.

다음 단계