오늘은 Guest OS의 Disk timeout 설정에 대해서 정리해보고자 합니다.
Windows VM에서 Disk timeout 값이 작게 설정되어 있는 경우에 SAN datastore 를 사용하면 성능에 문제가 있다는 문서가 있습니다.
Inconsistent Windows virtual machine performance when disks are located on SAN datastores (1014)
https://kb.vmware.com/s/article/1014
Windows VM이 위치한 SAN datastore 에서 오류가 발생해서 Retry, Link down timeout, Failover 등이 발생하는 경우 조치에 걸리는 시간보다 Disk의 Timeout이 길어야 ESXi 레이어에서 Storage에 대한 복구가 될 때 까지 Disk 가 오류가 발생하지 않게 됩니다. 문서에서는 일반적인 60초로 설정을 하도록 하였으나 정확한 값은 각 스토리지 업체의 값을 따라야 하고 Windows VM에서 실행되고 있는 Application의 특성을 따라야 합니다.
좀더 자세히 살벼보면 Windows WDK의 SCSI Miniport Driver 문서에는 Timeout을 설정하지 않을 경우 10초로 설정된다고 되고 Windows 8 (Windows Server 2012) 부터는 Miniport driver에 설정된 timeout 값이 적용됩니다.
하지만 아래 Microsoft 에서 나온 블로그 들을 보면 Timeout을 무조건 60 초로 설정하지는 말라고 되어 있습니다. Windows 에서는 Timeout이 발생하면 Storport 드라이버가 8번까지 재시도를 하게 되어 있어 만약 timeout이 60초로 설정되된 경우 최대 8분까지 (60초 x 8회) 재시도를 하는 것이 됩니다. SQL Server 나 Exchange Server와 같이 IO가 중요한 시스템들은 무조건 60초를 설정하기 보다는 Application 특성, 물리/가상머신 여부, Multipath, 스토리지 특성 등을 다 고려해서 적절한 값을 설정하는 것이 중요합니다.
Disk Timeout
https://blogs.technet.microsoft.com/hugofe/2011/09/07/disk-timeout/
Windows Disk Timeouts and Exchange Server 2010
https://blogs.technet.microsoft.com/exchange/2011/11/17/windows-disk-timeouts-and-exchange-server-2010/
Linux Guest OS의 Disk timeout도 설정되어야 합니다. 아래 문서를 보면 Linux Guest OS에서 SAN에서 IO retry, Path failover 등에 시간이 오래 걸려서 file system이 read-only로 설정되거나 Panic이 발생하는 경우가 있어 패치를 적용하고 Disk의 Timeout 값을 180으로 설정해야 합니다. (ESX 4 이후 부터는 VMware tools 를 설치한 경우 Timeout 값이 180으로 설정됩니다.)
Linux based file systems become read-only (51306)
https://kb.vmware.com/s/article/51306
Storage path failover might cause kernel panic in Linux kernels if using a virtual LSILogic adapter (Parallel or SAS) (1010759)
https://kb.vmware.com/s/article/1010759
Increasing the disk timeout values for a Linux 2.6 virtual machine (1009465)
https://kb.vmware.com/s/article/1009465
Filesystem on VMware Red Hat Enterprise Linux 4, 5, 6, & 7 guests went read-only
https://access.redhat.com/solutions/35329
Storage 업체의 권고를 확인해 보면 NetApp에서는 vSphere 환경에서 Linux 와 Windows 모두 60초를 설정할 것을 권장하고 있습니다.
What are the guest OS tunings needed for a VMware vSphere deployment?
https://kb.netapp.com/app/answers/answer_view/a_id/1001979/~/what-are-the-guest-os-tunings-needed-for-a-vmware-vsphere-deployment%3F-
결론은 Application/Storage 특성, ESXi 에서의 구성등을 모두 고려해서 Disk timeout을 설정해야 합니다.
'Virtualization' 카테고리의 다른 글
vSphere Performance Troubleshoooting and RCA (0) | 2019.03.10 |
---|---|
VMware vCenter Performance (0) | 2019.02.23 |
ESXi Internal (0) | 2018.10.20 |