Skip to main content
NetApp data management solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

PowerShell을 사용한 ONTAP 사이버 볼트 생성

기여자 kevin-hoke

기존 방식을 사용하는 에어 갭 백업에는 공간을 만들고 1차 및 2차 미디어를 물리적으로 분리하는 작업이 포함됩니다. 미디어를 다른 곳으로 옮기거나 연결을 끊으면 악의적인 행위자가 데이터에 액세스할 수 없습니다. 이렇게 하면 데이터는 보호되지만 복구 시간이 더 느려질 수 있습니다. SnapLock Compliance 사용하면 물리적 분리가 필요하지 않습니다. SnapLock Compliance 보관된 스냅샷 시점의 읽기 전용 사본을 보호하여 데이터에 빠르게 액세스할 수 있고 삭제나 지울 수 없으며 수정이나 변경이 불가능한 안전한 데이터를 제공합니다.

필수 조건

이 문서의 다음 섹션에 있는 단계를 시작하기 전에 다음 전제 조건이 충족되었는지 확인하세요.

  • 소스 클러스터는 ONTAP 9 이상을 실행해야 합니다.

  • 소스 및 대상 집계는 64비트여야 합니다.

  • 소스 클러스터와 대상 클러스터는 피어링되어야 합니다.

  • 소스 및 대상 SVM은 피어링되어야 합니다.

  • 클러스터 피어링 암호화가 활성화되어 있는지 확인하세요.

ONTAP 사이버 보관소로의 데이터 전송을 설정하려면 여러 단계가 필요합니다. 기본 볼륨에서 적절한 일정을 사용하여 어떤 복사본을 언제 만들지 지정하는 스냅샷 정책을 구성하고 SnapVault 에서 어떤 복사본을 전송해야 하는지 지정하는 레이블을 지정합니다. 보조적인 스냅샷 복사본의 레이블을 지정하고 사이버 볼트에 보관해야 하는 복사본의 수를 지정하는 SnapMirror 정책을 2차적으로 만들어야 합니다. 이러한 정책을 구성한 후 SnapVault 관계를 만들고 전송 일정을 설정합니다.

참고 이 문서에서는 기본 저장소와 지정된 ONTAP 사이버 보관소가 이미 설정 및 구성되어 있다고 가정합니다.
참고 사이버 볼트 클러스터는 소스 데이터와 같은 데이터 센터에 있을 수도 있고 다른 데이터 센터에 있을 수도 있습니다.

ONTAP 사이버 볼트를 만드는 단계

  1. ONTAP CLI 또는 시스템 관리자를 사용하여 규정 준수 시계를 초기화합니다.

  2. SnapLock 규정 준수를 활성화하여 데이터 보호 볼륨을 만듭니다.

  3. SnapMirror create 명령을 사용하여 SnapVault 데이터 보호 관계를 만듭니다.

  4. 대상 볼륨에 대한 기본 SnapLock Compliance 보존 기간을 설정합니다.

참고 기본 보존 기간은 "최소한으로 설정"되어 있습니다. 볼트 대상인 SnapLock 볼륨에는 기본 보존 기간이 할당됩니다. 이 기간의 값은 처음에 최소 0년, 최대 100년으로 설정됩니다( ONTAP 9.10.1부터). 이전 ONTAP 릴리스의 경우 SnapLock Compliance 볼륨의 값은 0~70입니다. 각 NetApp 스냅샷 복사본은 처음에 이 기본 보존 기간으로 커밋됩니다. 필요한 경우 보관 기간을 나중에 연장할 수 있지만, 절대로 단축할 수는 없습니다. 자세한 내용은 다음을 참조하세요. "보존 시간 설정 개요" .

위에 나열된 내용은 수동 단계를 포함합니다. 보안 전문가들은 오류가 발생할 가능성이 큰 수동 관리를 피하기 위해 프로세스를 자동화할 것을 권장합니다. 아래는 SnapLock 준수 및 시계 초기화의 전제 조건과 구성을 완전히 자동화하는 코드 조각입니다.

다음은 ONTAP 규정 준수 시계를 초기화하는 PowerShell 코드 예입니다.

function initializeSnapLockComplianceClock {
    try {
        $nodes = Get-NcNode

        $isInitialized = $false
        logMessage -message "Cheking if snaplock compliance clock is initialized"
        foreach($node in $nodes) {
            $check = Get-NcSnaplockComplianceClock -Node $node.Node
            if ($check.SnaplockComplianceClockSpecified -eq "True") {
                $isInitialized = $true
            }
        }

        if ($isInitialized) {
            logMessage -message "SnapLock Compliance clock already initialized" -type "SUCCESS"
        } else {
            logMessage -message "Initializing SnapLock compliance clock"
            foreach($node in $nodes) {
                Set-NcSnaplockComplianceClock -Node $node.Node
            }
            logMessage -message "Successfully initialized SnapLock Compliance clock" -type "SUCCESS"
        }
    } catch {
        handleError -errorMessage $_.Exception.Message
    }
}

다음은 ONTAP 사이버 볼트를 구성하는 PowerShell 코드 예입니다.

function configureCyberVault {
    for($i = 0; $i -lt $DESTINATION_VOLUME_NAMES.Length; $i++) {
        try {
            # checking if the volume already exists and is of type snaplock compliance
            logMessage -message "Checking if SnapLock Compliance volume $($DESTINATION_VOLUME_NAMES[$i]) already exists in vServer $DESTINATION_VSERVER"
            $volume = Get-NcVol -Vserver $DESTINATION_VSERVER -Volume $DESTINATION_VOLUME_NAMES[$i] | Select-Object -Property Name, State, TotalSize, Aggregate, Vserver, Snaplock | Where-Object { $_.Snaplock.Type -eq "compliance" }
            if($volume) {
                $volume
                logMessage -message "SnapLock Compliance volume $($DESTINATION_VOLUME_NAMES[$i]) already exists in vServer $DESTINATION_VSERVER" -type "SUCCESS"
            } else {
                # Create SnapLock Compliance volume
                logMessage -message "Creating SnapLock Compliance volume: $($DESTINATION_VOLUME_NAMES[$i])"
                New-NcVol -Name $DESTINATION_VOLUME_NAMES[$i] -Aggregate $DESTINATION_AGGREGATE_NAMES[$i] -SnaplockType Compliance -Type DP -Size $DESTINATION_VOLUME_SIZES[$i] -ErrorAction Stop | Select-Object -Property Name, State, TotalSize, Aggregate, Vserver
                logMessage -message "Volume $($DESTINATION_VOLUME_NAMES[$i]) created successfully" -type "SUCCESS"
            }

            # Set SnapLock volume attributes
            logMessage -message "Setting SnapLock volume attributes for volume: $($DESTINATION_VOLUME_NAMES[$i])"
            Set-NcSnaplockVolAttr -Volume $DESTINATION_VOLUME_NAMES[$i] -MinimumRetentionPeriod $SNAPLOCK_MIN_RETENTION -MaximumRetentionPeriod $SNAPLOCK_MAX_RETENTION -ErrorAction Stop | Select-Object -Property Type, MinimumRetentionPeriod, MaximumRetentionPeriod
            logMessage -message "SnapLock volume attributes set successfully for volume: $($DESTINATION_VOLUME_NAMES[$i])" -type "SUCCESS"

            # checking snapmirror relationship
            logMessage -message "Checking if SnapMirror relationship exists between source volume $($SOURCE_VOLUME_NAMES[$i]) and destination SnapLock Compliance volume $($DESTINATION_VOLUME_NAMES[$i])"
            $snapmirror = Get-NcSnapmirror | Select-Object SourceCluster, SourceLocation, DestinationCluster, DestinationLocation, Status, MirrorState | Where-Object { $_.SourceCluster -eq $SOURCE_ONTAP_CLUSTER_NAME -and $_.SourceLocation -eq "$($SOURCE_VSERVER):$($SOURCE_VOLUME_NAMES[$i])" -and $_.DestinationCluster -eq $DESTINATION_ONTAP_CLUSTER_NAME -and $_.DestinationLocation -eq "$($DESTINATION_VSERVER):$($DESTINATION_VOLUME_NAMES[$i])" -and ($_.Status -eq "snapmirrored" -or $_.Status -eq "uninitialized") }
            if($snapmirror) {
                $snapmirror
                logMessage -message "SnapMirror relationship already exists for volume: $($DESTINATION_VOLUME_NAMES[$i])" -type "SUCCESS"
            } else {
                # Create SnapMirror relationship
                logMessage -message "Creating SnapMirror relationship for volume: $($DESTINATION_VOLUME_NAMES[$i])"
                New-NcSnapmirror -SourceCluster $SOURCE_ONTAP_CLUSTER_NAME -SourceVserver $SOURCE_VSERVER -SourceVolume $SOURCE_VOLUME_NAMES[$i] -DestinationCluster $DESTINATION_ONTAP_CLUSTER_NAME -DestinationVserver $DESTINATION_VSERVER -DestinationVolume $DESTINATION_VOLUME_NAMES[$i] -Policy $SNAPMIRROR_PROTECTION_POLICY -Schedule $SNAPMIRROR_SCHEDULE -ErrorAction Stop | Select-Object -Property SourceCluster, SourceLocation, DestinationCluster, DestinationLocation, Status, Policy, Schedule
                logMessage -message "SnapMirror relationship created successfully for volume: $($DESTINATION_VOLUME_NAMES[$i])" -type "SUCCESS"
            }

        } catch {
            handleError -errorMessage $_.Exception.Message
        }
    }
}
  1. 위의 단계를 모두 완료하면 SnapLock Compliance 와 SnapVault 사용한 에어갭 사이버 볼트가 준비됩니다.

스냅샷 데이터를 사이버 볼트로 전송하기 전에 SnapVault 관계를 초기화해야 합니다. 하지만 그 전에 금고의 보안을 강화하는 것이 필요합니다.