Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows Server 2012 R2/2016 RDS 사용자 프로필 디스크(UPD) 설정 및 관리 완벽 가이드

사용자 프로필 디스크(User Profile Disks, UPD)는 Windows Server 2012의 원격 데스크톱 서비스(Remote Desktop Services, RDS)에 새롭게 도입된 기능입니다. UPD는 RDS 환경에서 로밍 프로필(Roaming Profile)과 폴더 리디렉션(Folder Redirection)을 대체할 수 있는 솔루션입니다. 핵심 개념은 사용자와 애플리케이션 데이터(즉, 사용자 프로필)를 네트워크 공유 폴더에 별도의 VHDX 가상 디스크 파일로 저장하는 것입니다. 이 가상 디스크는 사용자가 RDS 서버에 로그인하면 세션에 자동으로 마운트되고, 로그아웃 시 마운트가 해제되며, 프로필에 대한 모든 변경 사항은 VHDX 파일에 저장됩니다.

이 글에서는 Windows Server 2012 / 2012 R2 / 2016에서 원격 데스크톱 서비스 역할이 설치된 서버 환경에서 사용자 프로필 디스크를 구성하고 활용하는 방법을 자세히 살펴보겠습니다.

Windows Server RDS에서 사용자 프로필 디스크 구성하기

먼저, 사용자 프로필을 VHDX 디스크 형태로 저장할 공유 폴더를 사내 파일 서버에 생성해야 합니다(UPD 디스크의 고가용성이 필요하다면 클러스터형 파일 리소스에 배치할 수도 있습니다). 이 예제에서는 폴더 경로가 \\rdvh1\DemoLabOficeApp과 같습니다. RDS 컬렉션에 포함된 서버들은 이 공유 폴더에 대한 전체 액세스 권한을 부여받아야 합니다.

팁: 하나의 RDS 컬렉션에서는 한 명의 사용자당 하나의 VHDX 프로필 파일만 존재할 수 있습니다. 동일한 사용자가 서로 다른 두 컬렉션의 리소스에 접속하는 경우, 각 컬렉션마다 별도의 프로필 디스크를 생성해야 합니다.

사용자 프로필 디스크 모드는 원격 데스크톱 서비스의 컬렉션 설정에서 활성화하고 구성할 수 있습니다. 새 컬렉션을 생성할 때 바로 설정하거나, 나중에 돌아와서 구성할 수도 있습니다.

이 예제에서는 컬렉션이 이미 존재하므로, 서버 관리자(Server Manager) 콘솔에서 해당 컬렉션을 선택한 후 좌측 상단의 작업(Tasks)속성 편집(Edit Properties)을 클릭합니다.

그런 다음 User Profile Disks 섹션에서 Enable user profile disks 옵션을 체크하고, 앞서 생성한 공유 폴더 경로(\\rdvh1\DemoLabOficeApps)와 최대 프로필 디스크 크기(여기서는 20GB로 지정)를 입력한 후 변경 사항을 저장합니다.

변경 사항을 저장한 후에는 프로필 디스크 폴더의 NTFS 권한이 변경되었는지 확인해야 합니다. 이 예제의 컬렉션은 RDSH01 서버 하나로 구성되어 있으며, 해당 서버에 전체 제어(Full Control) 권한이 부여됩니다.

공유 폴더 수준에서도 RDSH01 서버에 전체 제어 권한이 부여된 것을 확인할 수 있습니다.

RDS 컬렉션에 새로운 RD 세션 호스트(RD Session Host) 서버를 추가하면, 마법사가 자동으로 폴더 권한을 변경하여 새 서버에 액세스 권한을 부여합니다. 터미널 팜을 확장할 때마다 프로필 폴더 권한을 직접 설정할 필요가 없으므로 매우 편리한 기능입니다.

UPD: VHDX 파일로 저장되는 사용자 프로필

사용자 프로필이 저장된 네트워크 공유 폴더로 이동하면 UVHD-template.vhdx 파일이 생성되어 있는 것을 확인할 수 있습니다.

이 파일은 사용자 프로필 디스크의 템플릿입니다. 사용자가 처음으로 RDS 서버에 로그온하면 이 템플릿이 복사되어 파일 이름에 사용자 SID가 포함된 VHDX 파일로 이름이 변경됩니다.

팁: UPD 파일 이름(SID)과 실제 사용자 계정 이름을 매칭하려면 별도의 스크립트가 필요합니다. 예를 들어 ShowUPDFolderDetails.ps1 스크립트를 사용하거나, Get-ADUser cmdlet으로 SID를 계정 이름으로 변환할 수 있습니다:

Get-ADUser -Identity S-1-5-21-32549751-3956249758-2943215497-23733695

이제 사용자 프로필 디스크의 내용을 살펴보겠습니다. VHDX 파일을 마우스 오른쪽 버튼으로 클릭하고 탑재(Mount)를 선택합니다. UPD 디스크는 하나의 RDS 호스트에서 하나의 세션에서만 사용 가능합니다(단독 액세스 방식). 사용자가 현재 RDS 서버에서 해당 디스크를 사용 중이라면 마운트할 수 없습니다.

VHDX 디스크를 열어보면 표준 사용자 프로필의 폴더와 파일들이 그대로 담겨 있는 것을 볼 수 있습니다. 로그온 시 사용자는 프로필에 저장된 데이터에 완전히 투명하게 접근할 수 있습니다.

RD 세션 호스트 서버 측에서는 사용자의 .vhdx 파일이 C:\users\<username> 경로에 마운트되어 다음과 같이 표시됩니다.

주의할 점은 UPD 드라이브가 RDS 서버의 Windows OS 버전에 종속된다는 것입니다. 특정 Windows Server 버전의 RDS 서버에서 생성된 UPD 사용자 프로필을 다른 버전의 Windows Server로 이전(사용)할 수 없습니다.

데이터는 VHDX 파일에 실시간으로 기록됩니다. 즉, RDS 서버의 사용자 프로필에 데이터를 복사하면 공유 스토리지의 vhdx 파일 크기가 즉시 증가합니다.

시스템에 이미 사용자 프로필 폴더가 존재하는 경우, 기존 프로필 폴더는 <username>-BACKUP-<number> 형식으로 이름이 변경됩니다.

VHDX 디스크는 VDI 또는 RDS 서버에서 사용자 세션이 시작될 때 마운트됩니다. 연결된 UPD 디스크 목록은 mountvol 유틸리티를 사용하여 확인할 수 있습니다.

기본적으로 사용자 프로필 디스크에는 사용자 프로필의 전체 내용이 포함됩니다. 하지만 RDS 컬렉션 설정에서 동기화 대상에서 제외할 특정 폴더를 지정하거나, 반대로 특정 폴더만 저장하도록 구성할 수도 있습니다. 제외 목록에 포함된 폴더에 대해 사용자가 터미널 세션 중 수행한 변경 사항은 공유 폴더의 VHDX 디스크에 저장되지 않습니다.

두 번째 옵션을 사용하면 UPD 프로필에 지정된 디렉터리만 저장하도록 구성할 수 있습니다.

필요에 따라 마지막 옵션을 활용하면 appsfolder.itemdata-ms 파일에 저장되는 시작 화면(Start Screen) 설정 보관 시나리오도 구현할 수 있습니다. 이 예제에서는 \AppData\Local\Microsoft\Windows 폴더 경로를 UPD에 추가로 저장할 경로로 등록했습니다.

PowerShell로 사용자 프로필 디스크 크기 조정하기

Hyper-V 모듈의 Resize-VirtualDisk PowerShell cmdlet을 사용하여 사용자의 UPD 프로필이 담긴 가상 vhdx 드라이브를 확장할 수 있습니다.

Net use U: \\rdvh1\DemoLabOficeApps
Resize-VHD -Path u:\UVHD-<SID>.vhdx -SizeBytes 40GB
Net use U: /delete

Windows 10 데스크톱에서 Resize-VHD cmdlet을 실행하려면 Hyper-V → Hyper-V 플랫폼 → Hyper-V 서비스 기능을 먼저 설치해야 합니다.

이후 디스크 관리(Disk Management) 콘솔 GUI에서 볼륨을 확장합니다(동작(Action) → VHD 연결(Attach VHD) → 볼륨 확장(Extend volume)).

또는 다음 PowerShell 스크립트를 사용하여 vhdx 파일을 사용 가능한 최대 크기까지 자동으로 확장할 수 있습니다:
<#
.Synopsis
This script extend size of VHDX file and resize the disk partition to Max
#>
Param(
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
[alias("Path")]
[string]$vhdxFile,
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
[alias("Size")]
[int64]$vhdxNewSize
)
begin{
try {
Mount-VHD -Path $vhdxFile -ErrorAction Stop
}
catch {
Write-Error "File $vhdxFile is busy"
Break
}
$vhdx = Get-VHD -Path $vhdxFile
if ($vhdx.Size -ge $vhdxNewSize){
Write-Warning "File $vhdxFile already have this size!"
$vhdx | Dismount-VHD
Break
}
}
process{
Dismount-VHD -Path $vhdxFile
Resize-VHD -Path $vhdxFile -SizeBytes $vhdxNewSize
$vhdxxpart = Mount-VHD -Path $vhdxFile -NoDriveLetter -Passthru | Get-Disk | Get-Partition
$partsize = $vhdxxpart | Get-PartitionSupportedSize
$vhdxxpart | Resize-Partition -Size $partsize.SizeMax
}
end{
Dismount-VHD -Path $vhdxFile
}

주의: 활성 RDS 세션이 진행 중인 상태에서는 사용자의 UPD 디스크를 확장할 수 없습니다.

UPD 파일 크기를 줄이려면(vhdx 파일 내부에서 사용자 데이터를 삭제했고, 실제 디스크 사용량이 할당된 크기보다 작은 경우) 다음 명령을 사용합니다:

resize-VHD \\rdvh\DemoLabOficeApps\UVHD-<SID>.vhdx –ToMinimumSize

그리고 이어서 다음 명령을 실행합니다:

Optimize-vhd -path \\rdvh1\DemoLabOficeApps\UVHD-<SID>.vhdx -mode full

마무리 및 운영 시 주의사항

지금까지 Windows Server 2016 및 2012 R2 기반의 RDS/VDI 솔루션에서 사용자 프로필 디스크의 주요 특징을 살펴보았습니다. UPD 구성은 로밍 프로필이나 리디렉션된 폴더 구성보다 훨씬 간편합니다. 디스크가 RDS 컬렉션에 연결되므로 여러 서버가 공유 프로필을 사용하더라도 표준 프로필과 달리 손상되지 않습니다. 사용자 프로필 디스크는 SMB 공유, CSV, SOFS, SAN 또는 로컬 디스크에 저장할 수 있습니다. 다만 Microsoft에 따르면 UPD 사용 시 사용자 데스크톱 환경 로딩 속도가 다소 저하될 수 있다는 점에 유의해야 합니다.

UPD 프로필을 DFS 서버에 저장할 계획이라면 해당 서버에 반드시 Windows Server 2012 R2 이상이 설치되어 있어야 합니다. 이전 버전의 Windows Server를 사용하면 다음과 같은 오류가 발생합니다:

Unable to enable user disks on rVHDShare. Could not create template VHD. Error Message: The network location "\\woshub.com\namespace\UserProfileDisk" is not available.

또한 파일 서버 측에서는 SMB 3.02(Windows Server 2012 R2) 이상 버전을 사용하는 것이 좋습니다.

어쨌든 사용자 프로필 디스크는 비교적 새로운 기술이므로, 대규모 UPD 도입에 앞서 테스트 환경에서 충분히 검증하고 잠재적인 문제점을 파악한 후 적용하는 것을 권장합니다.