피드 구독

많은 기업과 조직이 기존의 가상화 플랫폼에서 하이브리드 클라우드 솔루션으로 전환하고 있습니다. 최근 Red Hat 엔지니어 그룹은 가상 워크로드를 OpenShift로 마이그레이션하는 고급 툴인 Migration Toolkit for Virtualization을 사용하여 Red Hat Virtualization에서 Red Hat OpenShift로의 대규모 마이그레이션을 진행함으로써 이 과정을 수행했습니다.

Red Hat Virtualization 환경은 수백 개의 VM(Virtual Machine, 가상 머신)을 10년 이상 성공적으로 실행해 왔습니다. 이 중 일부는 엔지니어가 개발 및 테스트 목적으로 사용하고 나머지는 프로덕션 워크로드에 사용했습니다. 그러나 Red Hat Virtualization의 지원 종료 시기가 다가오면서 VM을 OpenShift로 마이그레이션할 때가 되었다고 판단했습니다.

Red Hat Virtualization에서 실행 중인 VM의 특성을 고려하고 최종 사용자의 디스럽션을 최소화하기 위해 OpenShift Virtualization을 사용하여 OpenShift의 VM 내에서 워크로드를 계속 실행하기로 결정했습니다. 이러한 목표를 실현하기 위해 당시 가장 발전된 버전이자 향상된 마이그레이션 기능을 갖춘 Migration Toolkit for Virtualization 2.4를 사용하여 마이그레이션을 수행했습니다.

Red Hat Virtualization에서 OpenShift로 전환하는 과정에서 Red Hat은 Red Hat 자체에서 겪는 것과 사용자가 겪는 것을 비롯하여 여러 과제에 직면했습니다. 이 문서의 나머지 부분에서는 Red Hat이 이러한 문제를 어떻게 해결했는지 설명하고 경험을 통해 얻은 인사이트를 알려드립니다.

준비 및 계획

성공적인 마이그레이션을 위해서는 철저한 계획이 필요했습니다.마이그레이션을 계획하면서, Red Hat에서는 몇 가지 과제가 있음을 깨달았습니다.

우선 대상 OpenShift 클러스터에 마이그레이션된 워크로드를 처리할 수 있는 충분한 리소스가 있는지 확인해야 했습니다. 먼저 Red Hat Virtualization에서 최근 사용되지 않은 VM과 소유자가 새로운 OpenShift 환경으로 마이그레이션하지 않도록 요청한 VM을 확인했습니다. 이러한 VM은 마이그레이션에 포함되지 않았습니다. 그런 다음 마이그레이션할 VM의 디스크를 위한 충분한 스토리지 공간이 OpenShift에 있는지 확인했습니다. 또한 마이그레이션할 VM에 할당할 IP 주소가 OpenShift의 타겟 VLAN에 충분히 있는지 확인했습니다.

그런 다음 Red Hat Virtualization에서 사용한 프로비저닝 모델과 OpenShift Virtualization 환경에서 사용한 프로비저닝 모델을 연결해야 한다는 점을 깨달았습니다. Red Hat Virtualization에서는 관리자가 사용자에게 새 VM을 할당했습니다. 반면 OpenShift Virtualization에서는 관리자가 사용자를 프로젝트에 할당하면 사용자가 직접 해당 프로젝트에서 VM을 생성할 수 있습니다.

마지막으로 Migration Toolkit for Virtualization에서 원본 프로바이더와 타겟 프로바이더 모두 사용자 자격 증명을 사용하여 설정합니다. 이러한 방식으로 사용자는 권한이 있는 VM을 마이그레이션할 원본 프로바이더와 사용자를 대신하여 VM을 생성할 타겟 프로바이더를 정의합니다. 이 사례에서는 각 사용자에게 VM을 마이그레이션하도록 요청하는 대신 모든 VM을 한 번에 마이그레이션하는 방법을 선호했습니다. 따라서 사용자가 Red Hat Virtualization의 모든 VM에 액세스하고 OpenShift의 모든 프로젝트에서 VM을 생성할 수 있도록 두 플랫폼 모두에서 관리자 권한이 있는 사용자로 작업해야 했습니다.

타겟 OpenShift 클러스터의 스토리지 용량이 충분한지 확인하기 위해 최근(Red Hat의 경우 지난 1년 동안) 사용한 VM과 해당 디스크 크기를 가져오는 일이 간단한 태스크가 아니라는 것을 알게 되었습니다. 또한 다양한 프로비저닝 모델을 연결하기 위해 Red Hat Virtualization의 VM 소유자가 OpenShift에서 해당 프로젝트를 생성하도록 하는 데에도 추가 작업이 필요했습니다. Red Hat은 Python 스크립트를 구현하여 이러한 과제를 해결했습니다.

첫 번째 스크립트 그룹은 oVirt SDK를 사용하여 Red Hat Virtualization에서 데이터를 수집했습니다. 이 데이터를 통해 VM이 마지막으로 사용된 시기를 확인하고 지난해에 사용되지 않은 VM을 제외했습니다. 마이그레이션할 최종 VM 목록을 확보한 후에는 디스크 크기 및 소유자에 대한 세부 정보를 수집했습니다. Red Hat Virtualization에서 얻은 데이터에 따르면 마이그레이션된 VM 데이터를 OpenShift 클러스터에 저장할 스토리지 공간이 충분하지 않았습니다. 이 문제를 해결하기 위해 새 스토리지 클래스를 추가하여 OpenShift 클러스터의 스토리지를 늘렸습니다.

두 번째 스크립트 그룹은 쿠버네티스 API를 사용하여 OpenShift 클러스터에서 프로젝트를 준비하는 데 사용되었습니다. 첫 번째 스크립트 집합에서 얻은 데이터를 사용하여 마이그레이션된 각 VM의 소유자 집합을 파악했습니다. 그런 다음 OpenShift 클러스터에 소유자 집합별 프로젝트를 생성하고 관리자 권한이 있는 ClusterRole을 부여하여 해당 소유자에게 할당했습니다.

이를 설명하기 위해 Red Hat Virtualization 사용자인 Alice와 Bob이 소유한 shared_vm이라는 VM을 살펴보겠습니다. OpenShift에서 alice-bob-ns라는 프로젝트를 생성합니다. Alice와 Bob 모두 이 프로젝트에 대한 권한이 있습니다. 그런 다음 shared_vm VM을 alice_bob_ns 프로젝트로 마이그레이션합니다. Red Hat Virtualization에서 Alex와 Bob이 소유한 다른 VM도 동일한 프로젝트인 alice_bob_ns로 마이그레이션할 수 있습니다. 혼자 또는 다른 사용자와 함께 소유한 Red Hat Virtualization의 VM을 통해 Alice와 Bob을 다른 프로젝트에 할당할 수도 있습니다. 이러한 접근 방식을 사용하면 Red Hat Virtualization과 OpenShift 환경에서 다양한 프로비저닝 모델을 처리할 수 있습니다.

이 문제를 해결한 후에는 가상 머신 마이그레이션을 진행했습니다.

실행

마이그레이션 자체는 다음과 같은 여러 단계로 구성됩니다.

  1. 마이그레이션 대상인 OpenShift 클러스터에 Migration Toolkit for Virtualization을 배포합니다. Migration Toolkit for Virtualization은 VM을 VM이 실행되는 OpenShift 클러스터 또는 대상 프로바이더로 추가된 원격 OpenShift 클러스터로 마이그레이션할 수 있습니다. 이 경우 모든 VM이 단일 OpenShift 클러스터로 마이그레이션되었으므로 해당 클러스터에 Migration Toolkit for Virtualization 오퍼레이터를 설치했습니다.
  2. OpenShift 웹 콘솔에서는 다음과 같은 방법으로 관리자 사용자를 사용하여 마이그레이션을 위한 OpenShift 클러스터를 구성했습니다.
    1. 마이그레이션 작업을 위해 지정된 관리 프로젝트를 생성합니다.
    2. 관리 프로젝트에 Red Hat Virtualization 원본 프로바이더, 타겟 프로바이더인 로컬 OpenShift 클러스터, 스토리지, 네트워크 매핑을 생성합니다.
  3. 타겟 프로젝트로 마이그레이션하는 데 필요한 마이그레이션 계획이 많기 때문에 해당 실행을 관리자 권한으로 구현한 스크립트를 사용하여 생성과 실행을 자동화했습니다. 이러한 스크립트는 다음 작업을 수행했습니다.
    1. 타겟 프로젝트별로 콜드(Cold) 마이그레이션 계획을 생성했습니다. 콜드 마이그레이션을 선택한 이유는 VM의 다운타임을 고려하지 않았고, 콜드 마이그레이션이 웜(Warm) 마이그레이션보다 일반적으로 더 빠르기 때문입니다.
    2. 마이그레이션 계획을 트리거하기 위해 마이그레이션별 계획을 생성했습니다.

대부분의 VM 마이그레이션 계획이 성공적으로 완료되었지만 VM을 마이그레이션하는 동안 두 가지 흥미로운 과제에 직면했습니다.

먼저 첫 번째 VM 마이그레이션이 완료될 때까지 예상보다 시간이 오래 걸렸습니다. 이는 다수의 마이그레이션 계획을 동시에 실행했기 때문이었습니다.

Migration Toolkit for Virtualization에서는 특정 마이그레이션 계획의 일부로 동시에 실행되는 VM 마이그레이션 수를 제한할 수 있지만, 여러 마이그레이션 계획에서 실행되는 VM 마이그레이션 수를 제한할 수 있는 방법은 없습니다. 따라서 여러 마이그레이션 계획을 동시에 실행하면 네트워크 대역폭이 고갈되어 VM 마이그레이션 속도가 느려졌습니다.

이 사례의 경우 모든 마이그레이션 계획을 마이그레이션하는 데 걸리는 시간이 마이그레이션된 각 VM의 다운타임보다 더 중요했으며, 이러한 선택이 전체 마이그레이션 시간에 영향을 미치지 않았습니다. 그러나 전체 마이그레이션 시간이 네트워크 대역폭 고갈로 인한 영향을 받아 VM 마이그레이션 시간이 초과될 수 있거나 각 VM의 다운타임을 최소화해야 하는 경우에는 마이그레이션 계획을 점진적으로 구현하거나 웜 마이그레이션을 수행하는 것이 좋습니다.

두 번째로, VM 마이그레이션 120건 중 3건이 실패했습니다. 이러한 오류를 조사한 결과, 코드베이스의 버그로 인해 실패한 것으로 나타났습니다. 버그를 신속하게 수정하고 Migration Toolkit for Virtualization 수정 버전을 사용하여 모든 VM을 성공적으로 마이그레이션했습니다. 이 문제에 대한 수정 사항은 Migration Toolkit for Virtualization 2.5에 포함되어 있습니다.

이러한 조정을 통해 모든 VM을 OpenShift로 성공적으로 마이그레이션했습니다.

OpenShift에서 VM 검증

Migration Toolkit for Virtualization을 사용하여 모든 마이그레이션을 완료한 후에는 OpenShift Virtualization에서 임의로 선택한 여러 VM에 온전성 검사를 수행했으며, 선택한 각 VM이 검사를 통과했습니다. 그런 다음 VM 소유자의 추가 피드백을 기다렸습니다. OpenShift Virtualization에서 마이그레이션한 VM에 대한 사용자 피드백은 전반적으로 긍정적이었지만 몇 가지 문제가 보고되었습니다.

한 가지 문제는 일부 VM이 부팅에 실패하여 'no operating system found' 메시지가 표시되는 것입니다. 이 문제는 디스크가 여러 개인 VM에서만 발생하며, 부팅할 디스크를 잘못 선택한 경우에만 발생한다는 사실을 확인했습니다. 이 문제는 VM의 부팅 순서를 수동으로 수정하여 부팅 가능한 디스크에서 부팅되도록 하여 해결했습니다.이 문제는 Migration Toolkit for Virtualization 2.5에서 수정되었습니다.

또한 몇 가지 서비스 디스럽션이 보고되었습니다. 마이그레이션하는 동안 VM은 인프라 제약으로 인해 VLAN을 변경했으며 시작 시 VM 내의 일부 워크로드와 서비스에 액세스할 수 없었습니다.이는 새 VLAN에 다른 FQDN(Fully-qualified Domain Name, 정규화된 도메인 이름)과 IP 주소로 구성된 DNS 레코드가 있기 때문입니다. 이 문제는 사용자에게 워크로드 및 외부 클라이언트를 새 FQDN 설정에 맞게 조정하도록 안내함으로써 해결되었습니다.

교훈

기존 데이터센터에서 하이브리드 클라우드 솔루션으로 전환하는 것은 어려운 일입니다. 사용자는 다양한 툴에서 지원되는 다양한 접근 방식 중에서 선택할 수 있습니다.이 문서에서는 Red Hat이 내부적으로 수행한 Red Hat Virtualization에서 OpenShift로의 VM 마이그레이션에 대해 설명했습니다.

이 마이그레이션에는 신중하고 포괄적인 계획과 조직 내 모든 이해관계자와의 명확한 커뮤니케이션이 필요했습니다. Migration Toolkit for Virtualization은 OpenShift Virtualization으로 원활하게 마이그레이션하는 데 도움이 되는 툴링을 제공하지만, 필요한 모든 기술 단계를 항상 다루는 것은 아닙니다.

이 문서에서는 Migration Toolkit for Virtualization을 Migration Toolkit for Virtualization에서 처리하지 않는 작업을 위해 구현한 스크립트와 함께 사용하는 방법을 공유했습니다. 이러한 스크립트는 GitHub에 있습니다. 해당 툴을 사용하여 12TB의 데이터가 포함된 VM 120개를 효과적으로 마이그레이션했으며, 현재 OpenShift에서 성공적으로 실행되고 있습니다.

Red Hat Virtualization 지원 종료 시기가 다가옴에 따라 많은 조직이 유사한 마이그레이션을 고려할 것으로 예상됩니다. Red Hat의 경험과 툴이 Migration Toolkit for Virtualization을 사용하여 VM을 OpenShift로 마이그레이션하는 데 도움이 되기를 바랍니다. 이 툴킷에서는 이 게시물에서 언급한 문제에 대한 수정 사항과 다양한 추가 개선 사항을 제공합니다.


저자 소개

Joined Red Hat in 2020, initially as an engineer in the storage virtualization team. Later transitioned to work on diverse proof-of-concept and research projects centered around OpenShift as a virtualization platform and its orchestration. Currently part of the MTV team, dedicated to developing new features and capabilities, and implementing migrations from traditional virtualization platforms to OpenShift virtualization.

Read full bio

Arik is a hands-on engineering manager that leads the Migration Toolkit for Virtualization team. During his time at Red Hat since joining in 2012, Arik primarily contributed to Red Hat Virtualization, OpenShift Virtualization and other OpenShift projects as an individual contributor, prior to managing Red Hat Virtualization engineering teams.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Original series icon

오리지널 쇼

엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리