Azure에서 TrueNAS 디바이스 생성

소개하다.


최근에 저는 IX Systems NAS 장비를 가지고 놀 수 있는 기회가 생겼는데, 그들의 플랫폼인 TrueNAS가 제 흥미를 끌었습니다.내가 그들의 배치 문서를 훑어보았을 때, 나는 AWS에 배치 설명이 있지만, Azure에는 없다는 것을 알아차렸다.기술 제한은 없으나 아직 인증을 하지 않았다고 기술 지원자에게 문의했다.이것은 나로 하여금 어떻게 Azure에서 이 점을 실현할 것인가를 생각하게 한다.

목표


Azure에서 TrueNAS 어플라이언스를 만들 수 있는지 스스로 결정하겠습니다.저는 Azure를 위한 사용자 정의 이미지를 만들어본 적이 없고 Hyper-V를 사용하는 데 시간이 많이 걸리지 않았기 때문에 소매를 걷어 올리고 새로운 것을 배울 때가 되었습니다.이 게시물은 나의 과정과 결과를 상세하게 소개하였다.나는 네가 나의 여정과 결과가 유용하다고 생각하기를 바란다.

여정


처음에 저는 기존 VMware OVA 이미지를 변환하고 Azure에서 작업하도록 하는 연구를 했습니다.몇 차례의 시도를 거쳤는데, 이것은 필요한 것보다 훨씬 복잡하다는 것이 분명하다.
그런 다음 Veeam을 사용하여 TrueNAS 가상 머신을 백업한 다음 VMware 환경에서 Azure로 복원합니다.이것은 매우 효과적이다. 나는 운영체제에 연결하고 풀 등을 설정할 수 있다. 나는 Azure에서 TrueNAS를 실행하려는 모든 사람들이 백업/복구 과정을 겪게 하고 싶지 않다. 나는 더욱 휴대할 수 있는 것이 필요하다.
TrueNAS Hyper-V 이미지를 생성하여 변환을 단순화하고 Hyper-V 가상 디스크를 Azure에서 사용할 수 있는 디스크 이미지로 변환하려고 합니다.나는 디스크를 업로드한 후에 그것을 둘러싸고 가상 컴퓨터를 만들었다.그런 다음 VMware 이미지로 변환하여 배포합니다.
이것은 내가 모은 각본의 기초 위에서 몇 가지 배치 문제를 제기했다.스크립트는 가상 시스템을 만들고 25분을 기다린 다음 오류 메시지를 던져 가상 시스템에 영향을 주지 않습니다.나는 한동안 했지만 해결 방안을 찾지 못해서 나의 과정을 간소화했다.
이번에 나는 이미지를 만드는 것을 걱정하지 않고 Hyper-V 가상 기기에서 만든 가상 디스크를 사용했다. 나는 디스크를 복제했을 뿐이다. 그래서 나는 PowerShell 스크립트를 사용하여 기존 세입자에서 가상 기기를 만들 수 있다.이제 Azure에서 기본 TrueNAS 가상 시스템을 쉽게 만들 수 있습니다.
처음에 TrueNAS 12로 Hyper-V 이미지를 만들었습니다.FreeBSD 기반 X 핵심 소프트웨어FreeBSD를 사용할 때 몇 가지 문제가 발생했습니다. (주로 UNIX에서의 한계입니다.) 그래서 이미지를 Debian Linux 기반의 TrueNAS SCALE 소프트웨어로 전환했습니다.
비록 이 코드는 현재'alpha'임에도 불구하고 나는 첫 번째 버전(20.10-alpha)에 설치할 수 있다Azure Linux Agent.구축이 빠르게 진행되었고 현재 wa에이전트는 20.12-ALPHA 코드에 포함되어 있습니다.

도전하다


Hyper-V 가상 디스크를 Azure에 업로드하는 것은 내가 예상한 것보다 훨씬 어렵다.더 큰 문제는 가상 디스크를 Azure에 업로드하는 것입니다.
Azure에 업로드된 가상 디스크에는 다음과 같은 특징이 필요합니다(Convert the virtual disk to a fixed size VHD.
  • Azure의 디스크는 1개의 MiB
  • 와 정렬된 가상 크기를 가져야 합니다.
  • 디스크 크기 는 1 MiB 의 배수여야 하고 디스크 크기 는 512바이트 VHD 바닥글
  • 운영 체제 VHD의 최대 크기는 2TiB
  • 최대 데이터 VHD 크기 32TiB
  • Azure에서 운영체제 디스크를 소형화하고 싶습니다. 디스크가 클수록 매달 비용이 높기 때문입니다.크기에 맞는 VHD 파일을 만들기 위해 다음 단계를 수행했습니다.
  • Hyper-V 가상 머신에 28GiB 운영 체제(동적) 디스크
  • 생성
  • Hyper-V GUI를 사용하여 고정 디스크로 변환(PowerShell에서도 사용 가능)
  •    Convert-VHD .\TrueNAS.vhdx D:\Azure\TrueNAS00.vhd -VHDType fixed
    
  • 운영 체제가 32GB만 필요하므로 가상 머신의 크기를 31GB로 조정합니다.
  •    Resize-VHD .\TrueNAS00.vhd -SizeBytes 31GB
    
  • 이로 인해 1 MiB 파벌이 발생하여 1024로 크기 조정
  •    Resize-VHD .\TrueNAS00.vhd -SizeBytes 33285996544
    
  • 이로 인해 1 MiB 파벌이 발생하여 1024
  • 로 크기 조정
    resize 명령과 get vhd 명령의 출력을 볼 수 있습니다.

    보시다시피 크기는 바이트 단위로 나열됩니다.Azure에 업로드할 수 있는 유효한 VHD가 되려면 1MiB로 나뉘어야 합니다(1 MiB=1048576 바이트).

    33285996544 bytes / 1048576 bytes = 31,744 bytes = 31 GiB


    결과가 정수가 아니면 VHD 크기를 조정해야 합니다.이 예에서는 정수이므로 유효한 VHD입니다.이제 PowerShell 또는 Azure Storage Explorer를 사용하여 선택한 리소스 그룹에 VHD를 호스팅된 디스크로 업로드할 수 있습니다.

    가상 머신 생성


    가상 머신 생성은 비교적 간단합니다.인터넷에서 찾은 Microsoft 문서 및 PowerShell 예제를 사용하여 다음 스크립트를 만들었습니다.
    이것은 나의 대본이다: Create TrueNAS VM from uploaded VHD.ps1
    만약 당신이 자신의 VHD를 만드는 과정을 겪고 싶지 않다면, 당신은 나의 것을 사용할 수 있습니다.자격 증명은 root/TrueNAS입니다.
    내 TrueNAS 배율 이미지: TrueNAS00.vhd
    # Create TrueNAS VM from uploaded VHD
    #
    # Assumptions: 
    # You have the following resources created:
    #  -Resourcegroup
    #  -Virtual network w/subnet
    #  -Virtual network gateway deployed and VPN tunnel created (if on-prem access is desired)
    #
    # Step 1: Upload the VHD to your subscription as a managed disk (not into a storage account). I used Azure Storage Explorer for this task. 
    #
    # Step 2: Fill in your information and copy and paste this into Cloud Shell or Azure PowerShell. It will prompt you to enter credentials, but they do not actually apply to the OS so they will not be used.
    #
    # Step 3: Wait for the VM to be created. You should not have to wait for the progress bar to complete as it not recognizing that the resources have been created. It will eventually timeout and throw an error.
    #
    # Step 4: Modify or delete the inbound NSG rule allowing HTTPS depending on your security requirements.
    #
    # Step 5: Connect to TrueNAS server via the "internal" IP address and configure to your needs.
    #
    # ---------------------------------------------------------------------------------------------------------------------------------------------------
    #
    # Setting the table
    
    $vmName = "TN-Test01"
    $vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_B2ms"
    
    $rgname = "Lab_RG"
    $vnetName = "lab-ncus-vnet"
    $location = "northcentralus"
    
    # Name of your uploaded managed disk
    $osDiskName = "TrueNAS01"
    
    $vnet = Get-azvirtualnetwork -Name $vnetName
    
    $nicName = $vmName+"-nic"
    $nic = New-AzNetworkInterface -Name $nicName `
        -ResourceGroupName $rgname `
        -Location $location -SubnetId $vnet.Subnets[0].Id `
    
    $osDisk = Get-AzDisk -Name $osDiskName
    
    $vm = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
    
    $vm = Set-AzVMOSDisk -VM $vm -ManagedDiskId $osDisk.Id -StorageAccountType Standard_LRS `
        -DiskSizeInGB 32 -CreateOption Attach -Linux
    
    New-AzVM -ResourceGroupName $rgname -Location $location -VM $vm
    
    VM을 만들기 위해 Visual Studio 코드를 사용하여 PowerShell 스크립트를 편집하고 실행합니다.

    스크립트가 성공적으로 실행되면 정의된 등록 정보를 사용하여 VM이 만들어진 것을 확인할 수 있습니다.

    여기서 스토리지 풀을 생성하기 위해 추가 데이터 또는 캐시 디스크를 추가할 수 있습니다.그런 다음 관리 인터페이스에 연결하고 로그인하여 VM을 만들 때 정의된 자격 증명을 사용하여 TrueNAS 디바이스 설정을 구성합니다.

    마무리


    이 프로젝트는 PowerShell과 Azure에 대한 나의 기술을 향상시켜야 한다.나는 당연히 여러 차례 낙담한 적이 있지만, 나는 그것을 극복할 수 있다.앞으로 스크립트에 더 많은 내용을 추가해서 데이터 디스크를 추가하고 VHD를 내 저장소 계정에서 내 자원 그룹으로 직접 복제할 수 있기를 희망하지만, 현재로서는 Azure에서 기본적인 TrueNAS 장치를 만들 수 있는 목표를 실현했다.
    숙련된 사용/학습:
  • PowerShell
  • 을 사용하여 VM 생성
  • Hyper-V에 VM 생성
  • Hyper-V 가상 디스크를 Azure Storage Explorer로 변환하여 Azure에 업로드
  • Unix/Linux 명령
  • PowerShell
  • 을 사용하여 Azure에 VM 생성
  • Github 및 Visual Studio 코드 사용
  • 링크:
  • TrueNAS.com
  • Install FreeNAS in Hyper-V: Part 1 Basic Configuration (servethehome.com)
  • 좋은 웹페이지 즐겨찾기