다음을 통해 공유


임시 NVMe 디스크에 대한 FAQ

이 문서에서는 Azure에서 만든 VM(가상 머신)의 임시 NVMe(비휘발성 메모리 Express) 디스크 지원에 대한 몇 가지 일반적인 질문을 다룹니다. 이 문서에서는 "임시 디스크"라는 용어가 로컬 SSD에서 만든 임시 디스크를 참조합니다.

내 VM에 NVMe 인터페이스를 사용하는 임시 디스크를 만들기 위한 필수 구성 요소는 무엇인가요?

로컬 임시 디스크에 대한 NVMe 지원은 VM(가상 머신) 제품군 수준에서 다릅니다. 로컬 디스크가 있는 모든 새 v6 VM은 NVMe 임시 디스크를 지원하지만 v5 VM 및 이전 버전은 NVMe 로컬 임시 디스크를 지원하지 않을 수 있습니다. 이러한 크기의 대부분은 SCSI 인터페이스에 있습니다. L 시리즈와 같은 일부 VM 제품군에는 Lsv2 세대 VM 이후의 NVMe SSD가 로컬로 연결되어 있습니다. NVMe 임시 디스크가 지원되는지 확인하려면 VM 제품군 개요를 참조하세요. 또한 대부분의 최근 OS 릴리스에 기본적으로 있는 로컬 NVMe를 사용하려면 게스트 OS에 NVMe 드라이버 지원이 있어야 합니다.

내 Dl/D/E_v6 VM의 임시 NVMe 디스크는 원격 NVMe 디스크와 어떻게 다른가요?

임시 NVMe 디스크는 일시적이어서 VM의 데이터가 사라질 수 있지만 원격 NVMe 디스크의 데이터는 유지된다는 것이 주요 차이점입니다. VM의 스토리지 옵션을 선택할 때 이러한 차이점을 고려합니다.

이전 D/E 시리즈 VM과 달리 새 v6 VM에는 포맷되지 않은 원시 NVMe 디스크가 함께 제공됩니다. 고객은 VM이 시작된 후 원하는 파일 시스템으로 디스크를 초기화하고 포맷해야 합니다.

Dl/D/E v6 시리즈 VM은 이전에 사용된 로컬 SCSI(Small Computer System Interface) 디스크 대신 VM에 직접 연결된 노드의 로컬 임시 NVMe 디스크를 사용하도록 최적화되었습니다. 이 방법을 사용하면 초당 입력/출력 작업이 더 높고 워크로드에 대한 처리량을 높일 수 있습니다.

임시 NVMe 디스크를 사용하여 VM을 구성할 때 어떤 변화에 대비해야 하나요?

  • VM이 시작된 후 디스크를 초기화하고 포맷해야 합니다. 사용자가 시작한 중지, 할당 취소 또는 계획된 유지 관리 및 Azure에서 시작한 자동 복구 이벤트 후에 VM은 원시 임시 NVMe 디스크로만 시작됩니다. 임시 NVMe 디스크는 초기화 및 포맷될 때까지 애플리케이션에 표시되지 않습니다.

  • VM이 시작된 후 필요에 따라 별도의 NVMe 드라이브를 하나로 확장할 수 있습니다.

  • Windows 페이지 파일은 영구 OS 디스크에 배치되지만(임시 OS 기능을 사용하지 않는 한) VM이 시작된 후 필요에 따라 임시 NVMe 디스크로 옮길 수 있습니다.

  • 사용 중인 경우 임시 OS 기능은 하나 또는 여러 NVMe 디스크(VM 및 이미지 크기에 따라 다름)를 v5 이하 VM과 비슷하게 느린 SCSI/VHD 기반 디스크로 변환합니다. 더 큰 VM 크기의 경우 나머지 드라이브는 포맷되지 않은 원시 NVMe로 유지됩니다.

  • REST API의 리소스 SKU(Stock Keeping Units) 목록은 가상 머신의 여러 기능을 노출합니다. VM 크기의 다음 반복에서는 이전 VM 크기에서 사용하는 SCSI 프로토콜 대신 로컬 스토리지에 더 빠르고 더 효율적인 NVMe 프로토콜을 사용합니다.

    Azure Virtual Machines의 경우 SCSI 기반 로컬 스토리지는 임시 리소스 디스크이며 MaxResourceVolumeMB 값은 이 디스크의 크기를 지정합니다. 반면 NVMeDiskSizeInMiB 값은 NVMe 기반 로컬 스토리지의 크기를 지정합니다.

임시 NVMe 디스크에 대해 Azure에서 제공하는 최소 암호화는 무엇인가요?

Azure VM(가상 머신)의 모든 로컬 NVMe 디스크에는 기본적으로 데이터 보호를 위해 기본 제공 암호화가 사용하도록 설정되어 있습니다. 임시 NVMe 디스크는 미사용 데이터 암호화 기능을 지원합니다. 고유한 DEK(데이터 암호화 키)는 VM에 할당된 각 임시 NVMe 디스크에 대한 데이터를 암호화합니다. KEK(키 암호화 키)는 DEK를 보호하는 데 도움이 됩니다. VM을 삭제하면 임시 NVMe 디스크의 데이터가 암호화되어 지워집니다. 2024년부터 도입된 모든 v6 VM에는 플랫폼 관리형 키로 하드웨어 기반 암호화를 사용하여 기본적으로 암호화된 로컬 NVMe 드라이브가 있습니다.

  • 데이터는 XTS-AES-256, AES-256-GCM 또는 더 강력한 암호화를 사용하여 암호화됩니다.
  • 디바이스는 VM의 각 디스크에 대해 고유한 MEK(미디어 암호화 키)를 생성합니다.
  • MEK는 다음과 같습니다.
    • 디바이스 하드웨어 내에서 완전히 생성되고 저장됩니다.
    • 호스트, VM 또는 운영자 또는 Azure 시스템을 포함한 외부 구성 요소에 노출되지 않습니다.
  • 모든 암호화 및 암호 해독 작업은 MEK를 사용하여 디바이스 내에서 발생합니다.
  • VM을 삭제하면 MEK가 제거되므로 나중에 어떤 구성 요소도 데이터에 액세스할 수 없습니다.

미사용 암호화 향상이란?

미사용 암호화는 TCG-OPAL 표준을 지원하여 Azure V6 시리즈 및 Lsv4 시리즈 VM에서 사용할 수 있는 또 다른 보호 계층입니다. 이 기능에 대해 아무 작업도 수행할 필요가 없으며 이러한 VM 유형에 대한 기본값입니다.

  • PIN 값은 각 MEK에 대한 Azure 인프라에서 생성되고 안전하게 저장됩니다.
  • PIN은 스토리지 디바이스 내의 KDF(키 파생 함수)를 통해 전달되어 KEK(키 암호화 키)를 생성합니다. PIN은 PMK(플랫폼 관리 키) 역할을 합니다.
  • MEK는 KEK를 사용하여 암호화되고 스토리지 디바이스 내에 내부적으로 저장됩니다.
  • KEK는 어디에도 저장되지 않으며 PIN을 성공적으로 인증하는 데 사용될 때 스토리지 디바이스에서 동적으로 생성됩니다. 이 PIN이 없으면 디바이스는 물리적으로 액세스하더라도 자체 저장된 데이터의 암호를 해독할 수 없습니다.
  • 스토리지 디바이스는 VM이 시작될 때 인증되고 VM이 중지될 때 잠기기 때문에 VM이 실행 중인 경우에만 데이터에 대한 액세스를 사용할 수 있습니다.

임시 디스크가 있는 v5 이하 VM의 크기를 v6로 조정하려면 어떻게 해야 하나요?

내 임시 NVMe 디스크를 어떻게 식별할 수 있나요?

Windows의 경우 다음 명령을 실행할 수 있습니다.

Get-PhysicalDisk | where { $_.FriendlyName.contains("NVMe Direct Disk")}

Linux의 경우 다음 명령을 실행할 수 있습니다.

sudo nvme id-ns /dev/nvme0n1 -b | dd bs=1 skip=384 status=none | sed 's/\x00*$//'

VM을 만들 때 Windows에서 임시 NVMe 디스크를 포맷하고 초기화하려면 어떻게 해야 하나요?

GUI 또는 Azure PowerShell을 사용할 수 있습니다.

GUI (그래픽 사용자 인터페이스)

다음 GUI 예는 설명을 위한 것입니다. 프로덕션 배포를 위해 이 워크플로를 자동화하는 스크립트를 만드는 것이 좋습니다.

  1. Windows 로고 키 + R을 선택하여 실행 대화 상자를 엽니다. diskmgmt.msc를 입력하고 Enter 키를 선택합니다.

    실행 대화 상자에 디스크 관리 명령을 입력하는 스크린샷.

  2. 파티션 스타일(MBR 또는 GPT)과 초기화할 디스크를 선택한 다음, 확인을 선택합니다.

    디스크 관리를 위해 디스크를 초기화하는 대화 상자의 스크린샷.

  3. 분할할 디스크를 마우스 오른쪽 단추로 클릭한 다음 새 단순 볼륨을 선택합니다.

    새 볼륨 유형을 선택하는 메뉴의 스크린샷.

  4. 볼륨 크기, 드라이브 문자, 파일 시스템, 볼륨 레이블 등의 항목을 지정하려면 새 단순 볼륨 마법사를 따릅니다. 마법사를 진행하려면 다음 단추를 선택합니다.

    새 단순 볼륨 마법사에서 볼륨 크기를 지정하는 스크린샷.

    새 단순 볼륨 마법사에서 드라이브 문자를 지정하는 스크린샷.

    새 단순 볼륨 마법사에서 파티션 포맷을 지정하는 스크린샷.

  5. 파티션 및 포맷을 완료하려면 설정을 검토한 다음 마침을 선택합니다.

    새 단순 볼륨 마법사를 완료하는 스크린샷.

  6. 포맷 및 초기화된 NVMe 디스크가 이 예의 새 볼륨(E:)이 나타나는 방법과 유사하게 Windows 디스크 관리 도구에 표시되는지 확인합니다.

    새 볼륨을 보여 주는 디스크 관리 도구의 스크린샷.

Azure PowerShell 스크립트

다음 스크립트는 드라이브 문자를 초기화, 포맷 및 할당합니다. 그러나 디스크의 모든 데이터를 지웁니다. 프로덕션 환경에 배포하기 전에 VM에서 철저히 테스트해야 합니다.

# Select the raw NVMe disks to partition and format 

$RawNvmeDisks = Get-PhysicalDisk -CanPool $True | where { $_.FriendlyName.contains("NVMe Direct Disk")} 

# Create a pool of the existing disks

New-StoragePool -FriendlyName NVMePool -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks $RawNvmeDisks -ResiliencySettingNameDefault Simple 

#Create a new disk, initialize, partition, and format

$Disk = New-VirtualDisk -FriendlyName NVMeTemporary -StoragePoolFriendlyName NVMePool -NumberOfColumns @($RawNvmeDisks).count  -PhysicalDiskRedundancy 0 -ResiliencySettingName "Simple" -UseMaximumSize

$Disk | Initialize-Disk 

#Create a partition and format. Ignore the pop-up. 

New-Partition -DiskId $Disk.UniqueId  -AssignDriveLetter -UseMaximumSize | Format-Volume

Linux에서 임시 NVMe 디스크를 어떻게 포맷하고 초기화할 수 있나요?

다음 스크립트는 Linux에서 임시 NVMe 디스크를 초기화하는 예를 제공합니다. 스크립트는 VM의 모든 임시 NVMe 디스크를 열거하고, 디스크를 단일 RAID 0 배열로 결합하고, 지정된 파일 시스템의 포맷된 파티션을 만듭니다.

임시 NVMe 디스크는 게스트 OS에 Microsoft NVMe Direct Disk로 표시되는 모델 번호로 구분합니다. 이 스크립트는nvme-cli id-ctrll 명령을 사용하여 각 NVMe 디바이스의 모델 번호를 쿼리합니다.

스크립트는 먼저 이미 생성된 임시 NVMe 디스크 볼륨(filesystem 레이블로 식별됨)을 확인합니다. 배열이 있는 것으로 나타나면 스크립트는 배열 무결성을 확인하고 필요한 경우 초기화 프로세스를 반복합니다. 다음과 같은 경우 배열이 다시 초기화됩니다.

  • 하나 이상의 배열 임시 디스크가 없습니다.
  • 임시 디스크가 배열에 아직 통합되지 않습니다.
  • 디스크 배열이 유효하지 않거나 알 수 없는 상태입니다.
  • 연결된 구성 파일이 없거나 유효하지 않습니다.
#!/bin/bash 

# Script requirements:
#   nvme-cli
#   mdadm
#   gdisk
 
readonly USAGE="Usage: $(basename "$0") <filesystem> <filesystem mount point (optional)>"
 
# Label used to identify the NVMe array file system and associated disks
# Can't exceed 16 characters
readonly RAID0_FILESYSTEM_LABEL="azure_nvme_temp"
# Device path used for the RAID 0 NVMe array
# Choose any unoccupied device path of format /dev/mdX (X = 0 to 99)
readonly RAID0_DEVICE_PATH="/dev/md0"
# Formatted RAID 0 partition is mounted here
readonly DEFAULT_MOUNT_POINT="/mnt/${RAID0_FILESYSTEM_LABEL}"
 
filesystem="$1"
if [ ! "$filesystem" ]; then
    printf "No filesystem specified. Usage: $USAGE\n"
    exit 1
fi
if ! [ -x "$(command -v mkfs.$filesystem)" ]; then
    printf "Filesystem \"$filesystem\" not supported by mkfs\n$USAGE\n"
    exit 1
fi
 
mount_point="$2"
if [ ! "$mount_point" ]; then
    printf "No mount point specified. Using default: $DEFAULT_MOUNT_POINT\n"
    mount_point=$DEFAULT_MOUNT_POINT
fi
 
# Make sure mdadm.conf is present
mdadm_conf_path=""
if [ -e "/etc/mdadm/mdadm.conf" ]; then
    mdadm_conf_path="/etc/mdadm/mdadm.conf"
elif [ -e "/etc/mdadm.conf" ]; then
    mdadm_conf_path="/etc/mdadm.conf"
else
    print "Couldn't find mdadm.conf file"
    exit 1
fi
 
# Enumerate unmounted NVMe direct disks
devices=$(lsblk -p -o NAME,TYPE,MOUNTPOINT | grep "nvme" | awk '$2 == "disk" && $3 == "" {print $1}')
nvme_direct_disks=()
for device in $devices
do
    if nvme id-ctrl "$device" | grep -q "Microsoft NVMe Direct Disk"; then
        nvme_direct_disks+=("$device")
    fi
done
nvme_direct_disk_count=${#nvme_direct_disks[@]}
printf "Found $nvme_direct_disk_count NVMe Direct Disks\n"
 
# Check if there's already an NVMe Direct Disk RAID 0 disk (or remnant data)
if grep "$RAID0_FILESYSTEM_LABEL" /etc/fstab > /dev/null; then
    fstab_entry_present=true
fi
if grep "$RAID0_FILESYSTEM_LABEL" $mdadm_conf_path > /dev/null; then
    mdadm_conf_entry_present=true
fi
if [ -e $RAID0_DEVICE_PATH ]; then
    nvme_raid0_present=true
fi
if [ "$fstab_entry_present" = true ] || [ "$mdadm_conf_entry_present" = true ] || [ "$nvme_raid0_present" = true ]; then
    # Check if the RAID 0 volume and associated configurations are still intact or need to be reinitialized
    #
    # If reinitialization is needed, clear the old RAID 0 information and associated files
 
    reinit_raid0=false
    if [ "$fstab_entry_present" = true ] && [ "$mdadm_conf_entry_present" = true ] && [ "$nvme_raid0_present" = true ]; then
        # Check RAID 0 device status
        if ! mdadm --detail --test $RAID0_DEVICE_PATH &> /dev/null; then
            reinit_raid0=true
        # Test the NVMe direct disks for valid mdadm superblocks
        else
            for device in "${nvme_direct_disks[@]}"
            do
                if ! mdadm --examine $device &> /dev/null; then
                    reinit_raid0=true
                    break
                fi
            done
        fi
    else
        reinit_raid0=true
    fi
 
    if [ "$reinit_raid0" = true ]; then
        echo "Errors found in NVMe RAID 0 temp array device or configuration. Reinitializing."
 
        # Remove the file system and partition table, and stop the RAID 0 array
        if [ "$nvme_raid0_present" = true ]; then
            if [ -e ${RAID0_DEVICE_PATH}p1 ]; then
                umount ${RAID0_DEVICE_PATH}p1
                wipefs -a -f ${RAID0_DEVICE_PATH}p1
            fi
            sgdisk -o $RAID0_DEVICE_PATH &> /dev/null
            mdadm --stop $RAID0_DEVICE_PATH
        fi
 
        # Remove any mdadm metadata from all NVMe Direct Disks
        for device in "${nvme_direct_disks[@]}"
        do
            printf "Clearing mdadm superblock from $device\n"
            mdadm --zero-superblock $device &> /dev/null
        done
 
        # Remove any associated entries in fstab and mdadm.conf
        sed -i.bak "/$RAID0_FILESYSTEM_LABEL/d" /etc/fstab
        sed -i.bak "/$RAID0_FILESYSTEM_LABEL/d" $mdadm_conf_path
    else
        printf "Valid NVMe RAID 0 array present and no additional Direct Disks found. Skipping\n"
        exit 0
    fi
fi
 
if [ "$nvme_direct_disk_count" -eq 0 ]; then
    printf "No NVMe Direct Disks found\n"
    exit 1
elif [ "$nvme_direct_disk_count" -eq 1 ]; then
    additional_mdadm_params="--force"
fi
 
# Initialize enumerated disks as RAID 0
printf "Creating RAID 0 array from:\n"
printf "${nvme_direct_disks[*]}\n\n"
if ! mdadm --create $RAID0_DEVICE_PATH --verbose $additional_mdadm_params --name=$RAID0_FILESYSTEM_LABEL --level=0 --raid-devices=$nvme_direct_disk_count ${nvme_direct_disks[*]}; then
    printf "Failed to create RAID 0 array\n"
    exit 1
fi
 
# Create a GPT partition entry
readonly GPT_PARTITION_TYPE_GUID="0FC63DAF-8483-4772-8E79-3D69D8477DE4"
printf "\nCreating GPT on $RAID0_DEVICE_PATH..\n"
sgdisk -o $RAID0_DEVICE_PATH &> /dev/null
if ! sgdisk --new 1::0 --typecode 1:$GPT_PARTITION_TYPE_GUID $RAID0_DEVICE_PATH  &> /dev/null; then
    printf "Failed to create partition on $RAID0_DEVICE_PATH\n"
    exit 1
fi
 
# Format the partition
partition_path="${RAID0_DEVICE_PATH}p1"
printf "\nCreating $filesystem filesystem..\n"
if ! mkfs.$filesystem -q -L $RAID0_FILESYSTEM_LABEL $partition_path; then
    printf "Failed to create $filesystem filesystem\n"
    exit 1
fi
printf "The operation has completed successfully.\n"
 
# Add the partition to /etc/fstab
echo "LABEL=$RAID0_FILESYSTEM_LABEL $mount_point $filesystem defaults,nofail 0 0" >> /etc/fstab
 
# Add RAID 0 array to mdadm.conf
mdadm --detail --scan >> $mdadm_conf_path
update-initramfs -u
 
# Mount the partition
printf "\nMounting filesystem to $mount_point..\n"
mkdir $mount_point &> /dev/null
if ! mount -a; then
    printf "Failed to automount partition\n"
    exit 1
fi
printf "The operation has completed successfully.\n"
 
exit 0

Windows 페이지 파일을 OS 디스크에서 임시 NVMe 디스크로 이동하려면 어떻게 해야 하나요?

GUI 또는 Azure PowerShell을 사용할 수 있습니다.

GUI (그래픽 사용자 인터페이스)

다음 GUI 예는 설명을 위한 것입니다. 프로덕션 배포를 위해 이 워크플로를 자동화하는 스크립트를 만드는 것이 좋습니다.

  1. Windows 로고 키 + R을 선택하여 실행 대화 상자를 엽니다. sysdm.cpl을 입력하고 Enter 키를 선택합니다.

    sysdm.cpl을 여는 실행 대화 상자의 스크린샷.

  2. 고급 탭을 선택한 다음 성능 섹션의 설정 단추를 선택합니다.

    시스템 속성의 고급 탭에 있는 성능 설정 단추의 스크린샷.

  3. 성능 옵션 대화 상자에서 고급 탭을 선택한 다음 가상 메모리 섹션에서 변경 단추를 선택합니다.

    성능 옵션의 고급 탭 스크린샷.

  4. 모든 드라이브에 대한 페이징 파일 크기 자동 관리 확인란의 선택을 취소합니다. 페이지 파일이 OS 디스크로 설정된 경우 OS 디스크를 선택하고 페이징 파일 없음 옵션을 선택한 다음 설정 단추를 선택합니다. 로컬 임시 NVMe 드라이브를 선택하고 시스템 관리 크기 옵션을 선택한 다음 설정 단추를 선택합니다. 확인 선택하여 모든 대화 상자를 닫습니다.

    가상 메모리에 대한 대화 상자의 스크린샷.

이러한 변경 내용을 적용하려면 VM을 다시 시작해야 할 수 있습니다.

Azure PowerShell 스크립트

$OsDisk = "C:"
# This value can vary, depending on which drive letter is assigned to the disk
$NVMeDisk = "E:"

# Disable automatic pagefile management
$Computer = Get-WmiObject Win32_computersystem -EnableAllPrivileges
$Computer.AutomaticManagedPagefile = $false
$Computer.Put()

# Delete the pagefile on the OS disk
$PageFile = Get-WmiObject -Query "select * from Win32_PageFileSetting where name='$OsDisk\\pagefile.sys'"
$PageFile.Delete()

# Create a new pagefile on the NVMe drive with system-managed size
Set-WMIInstance -Class Win32_PageFileSetting -Arguments @{name="$NVMeDisk\\pagefile.sys"; InitialSize=0; MaximumSize=0} -EnableAllPrivileges

이러한 변경 내용을 적용하려면 VM을 다시 시작해야 할 수 있습니다.

Linux 스왑 파일을 OS 디스크에서 임시 NVMe 디스크로 이동하려면 어떻게 해야 하나요?

  1. 스왑 공간에 사용되는 NVMe 디스크를 선택합니다.

    root@D2adsv6:/ # lsblk -p
        NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
        /dev/nvme1n1      259:0    0   30G  0 disk
        ├─/dev/nvme1n1p1  259:1    0 29.9G  0 part /
        └─/dev/nvme1n1p15 259:3    0  106M  0 part /boot/efi
        /dev/nvme0n1      259:4    0   75G  0 disk
    
  2. 디스크에 스왑 공간을 만듭니다.

    root@D2adsv6:/ # mkswap /dev/nvme0n1
    Setting up swapspace version 1, size = 75 GiB (80530632704 bytes)
    no label, UUID=064bdcfb-86ae-49f3-bf9d-b956493e2a1d
    
  3. 스왑 공간을 활성화합니다.

    root@D2adsv6:/ # swapon /dev/nvme0n1
    
  4. 스왑 공간이 올바르게 설정되었는지 확인합니다.

    root@D2adsv6:/ # swapon -s
    Filename                                Type            Size    Used    Priority
    /dev/nvme0n1                            partition       78643196        0       -2
    
  5. 다시 시작할 때에도 지속되도록 스왑 공간을 /etc/fstab에 추가합니다.

    root@D2adsv6:/ # echo '/dev/nvme0n1 swap swap defaults 0 0' >> /etc/fstab 
    

유지 관리 이벤트, VM 재배포, VM 재시작과 관련해 알아야 할 고려 사항은 무엇인가요?

V6 VM에 연결된 임시 NVMe 디스크는 다른 VM 시리즈의 임시 드라이브처럼 일시적입니다. 즉, 재배포 후 또는 유지 관리 이벤트 중에 VM의 모든 데이터가 손실됩니다. 유지 관리 이벤트 및 가동 중지 시간에 대한 자세한 내용은 VM 다시 부팅 이해: 유지 관리 및 가동 중지 시간을 참조하세요.

VM이 새 하드웨어로 이동된 경우 이러한 드라이브는 분리되고 분리된 새 디스크는 백업 시 운영 체제에 표시됩니다. VM이 하드웨어를 변경하지 않은 경우 임시 NVMe 디스크가 여전히 존재할 수 있습니다. 드라이브를 탑재하기 위한 이전 스크립트에서는 탑재를 시도하기 전에 탑재 해제된 드라이브를 확인합니다.

VM이 시작될 때마다 자동으로 탑재 스크립트를 실행하고 탑재 스크립트 실행이 완료될 때까지 드라이브가 필요한 다른 시작 스크립트를 지연하는 것이 가장 좋습니다.