今天接到客戶的一個關於copy vdisk後出現無法啓動的問題,報錯內容:vDisk file access perission denied
背景:客戶想在原來的vdisk上基礎上重新生成一個vdisk,客戶直接在存放vdisk上的磁盤上覆制原來的vdisk,假設原來vdisk name爲“masterxp01”copy出來的vdisk重新命令爲"masterxp02"
在原來的store中添加vdisk並導入此vhd文件,找到原來的target device,更改此TD的vdisk從masterxp01至masterxp02,
問題:在Standard模式下vm可以正常啓動,Private模式下提示上述錯誤。
在PVSserver上開啓debug log,收集Streamprocess.log
2013-01-17 17:44:11,305 [0x00000654] DEBUG CSSProtocol::DoDispatchServiceRequest AcquireLock succeeded for device (XP_vDisk), MAC=14DAE9C75697, DiskId=15 (base disk id = 15, version number = 0)
2013-01-17 17:44:11,305 [0x00000654] DEBUG CSSVirtualDisk::SetUpCacheFilePathAndName Full name of cache file is <D:\Cache\XP_vDisk_vDisk1.vhd> for device <XP_vDisk>
2013-01-17 17:44:11,305 [0x00000654] ERROR CSSVirtualDisk::AttachUnguarded Open vdisk file <vDisk1.vhd> failed for device <XP_vDisk>.
2013-01-17 17:44:11,305 [0x00000654] ERROR CSSVirtualDisk::makeDiskError Windows facility error for disk file access by device <XP_vDisk>. status = 0x5
2013-01-17 17:44:11,305 [0x00000654] DEBUG CManagedVdiskLock constructed for fullPathToLockFile_ = <D:\vDisk\vDisk1.lok>
2013-01-17 17:44:11,305 [0x00000654] ERROR CSSProtocol::DoDispatchServiceRequest Vdisk cannot be accessed for device (XP_vDisk), for base disk id = 15, version number = 0
2013-01-17 17:44:11,305 [0x00000654] DEBUG CSSProtocolModule::DoTraceEvent Login failed (error code: 2) for device XP_vDisk:
Server 192.168.5.252:6929: vDisk file access permission denied
在分析的過程中最直觀的看是權限問題,standard模式下只需要對vdisk有讀的權限,但是private模式寫需要讀寫的權限,開始懷疑在standard模式下用戶開啓了版本控制,最新版本有問題。後來方面用戶沒有相關任何操作。
回到原來的VHD文件,對比2個vdisk的vhd文件發現有異常的vdisk的屬性權限中沒有NETWORK SERVICE的權限,對比原來的vhd,添加NETWORK SERVICE賬戶並給出讀寫權限,再次啓動機器後正常工作