본문 바로가기

분류 전체보기

(212)
Windows Server iSCSI Target Portal에서 특정 IP 제외 Windows Server에서 iSCSI Target을 이용하는 경우, Network Interface에 등록된 모든 IPv4 주소를 iSCSI Target Portal의 주소로 사용합니다. 하지만 예를 들어, Mangement Network과 iSCSI Network으로 분리하기 위해서는 Set-IscsiTargetServerSetting Powershell cmdlet을 이용해야 합니다. 이를 통해 사용하길 원하는 iSCSI Network이 아닌 IPv4 주소를 iSCSI Target Portal 주소에서 배제할 수 있습니다. [example] 설정 전 192.168.1.2는 Management Network용 IPv4 주소 192.168.10.2는 iSCSI Network용 IPv4 주소 PS C:..
GPU 테스트(DirectPath I/O, Dynamic DirectPath I/O) Prerequisites ESXi에서 PCIe Device를 우선 Passthrough Device로 Enable DirectPath I/O VM에 Passthrough Device 할당 VM을 Template으로 Clone Template을 이용하여, VM 배포 ※ Template을 만들 때 할당했던 Device가 그대로 할당되어 있음 배포한 VM의 vmx 파일 더보기 [root@esxi01:/vmfs/volumes/62c37937-1a51c290-8dce-6805ca2ed572/VMfromTemplate] cat VMfromTemplate.vmx .encoding = "UTF-8" config.version = "8" virtualHW.version = "19" vmci0.present = "TRUE..
JXplorer를 이용한 vCenter의 VMDIR 접근 방법 VMDIR 이란? LDAP standards based distributed multi-master directory system to store identity data that change infrequently Lookup service is a directory in VMDIR All certificates should be synced, shared with other nodes. Prerequisites 먼저 Oralce 사이트에서 JDK를 다운로드 합니다.https://www.oracle.com/java/technologies/downloads/ JDK 설치를 완료한 후 Windows의 경우 JAVA_HOME 경로를 환경 설정에 추가해줘야 합니다. 제어판 > System > Advanced ..
vGPU License 및 MIG 제약 사항 # vSphere 환경 vGPU License T-Series GPU까지는 NVIDIA Grid vCS(Virtual Compute Server) 라이선스를 이용하여 vSphere에서 생성되는 VM에 vGPU 할당이 가능 A100의 경우에는(다른 Ampere Series와 달리) vCS가 지원이 안되고 NVIDIA AI Enterprise를 이용해야 함 https://docs.nvidia.com/grid/latest/pdf/grid-vgpu-release-notes-vmware-vsphere.pdf "NVIDIA Virtual Compute Server (vCS) is no longer supported and C-series vGPU types are no longer available. Instead..
2. Testing a Sample Driver 1. Sample Driver 작성 Visual Studio를 실행(Visual Studio를 관리자 권한으로 실행해야 Cryptographic Exception 이 발생하지 않음)하고, Empty WDM Driver 프로젝트 생성 프로젝트 > Driver Files 폴더에 있는 sample.inf 파일 제거 프로젝트 선택 -> 속성 -> C/C++ -> Code Generation -> Sepctre Mitigation을 Disabled로 변경하고 다시 Build Sample Code #include NTSTATUS DriverEntry(PDRIVER_OBJECT pDrvObj, PUNICODE_STRING pRegistryPath) { pDrvObj = pDrvObj; pRegistryPath = p..
1.Configuring the remote debugging with a virtual machine 1. VM(Target) 내의 Windows Guest OS에서 Debug Mode 설정 시작 > 실행 > msconfig Boot 탭 > Advanced Options > Debug 선택, Debug port는 COM1 선택, Baud rate는 115200 선택(재부팅 하지 말고) 명령 프롬프트 관리자 권한 실행 bcdedit /set testsigning on 명령어 실행 재부팅 2. Host 에서 Symbol 폴더 생성 C:\Sym 폴더와 C:\Sym\WebSym 폴더 생성 C:\Sym 폴더는 개인적으로 Build한 코드의 symbol 저장 용도 C:\Sym\WebSym 폴더는 Windows public symbol 저장 용도 3. Host 에서 Debugger 설정 시작 > Windows Kit..
0.Setting up an environment for debugging # Windows 10 기준 Step 1: Install Visual Studio 2019 Desktop Development with C++ 선택하고 Optional에서 전부 선택 (Visual Studio가 종료된 것을 확인하고!!) Step 2. 별도로 SDK 설치(Windows 10 SDK, 버전 2004(10.0.19041.0)) https://go.microsoft.com/fwlink/?linkid=2120843 Step 3. 별도로 WDK 설치(windows 10 WDK for Windows 10 version 2004) https://go.microsoft.com/fwlink/?linkid=2128854 마지막에 Extension도 설치해야 함 # Visual Studio에서 driver ..
SCSI Addressing (vSphere 기반) Disk를 구분할 때 SCSI Protocol에서는 SCSI Addressing을 정의하는데, 이 때 SCSI adapter name(host) / channel number(bus) / id number(target) / lun 정보를 이용하여 표현합니다. 구성 환경을 이해할 때 헷갈리는 부분이 있을 수 있어 정보가 어떻게 Mapping 되는지 정리하였습니다. vmhbaAdapter:CChannel:TTarget:LLUN 1) vmhbaAdapter is the name of the storage adapter. 2) CChannel is the storage channel number. Software iSCSI adapters and dependent hardware adap..
Calling Convention - 64bit Program 64bit Calling Convention 32bit에서 설명했던 Calling Convention 중 __fastcall과 유사하게 함수 호출 시 전달이 필요한 매개변수를 Register에 저장 다만, Windows와 Linux는 약간의 차이가 있는데 매개변수 전달 시, Windows는 RCX, RDX, R8, R9 Register를 사용하고 나머지 매개변수는 Stack에 보관 Linux는 RDI, RSI, RDX, RCX, R8, R9 Register를 사용하고 나머지 매개변수는 Stack에 보관 위의 예시는 매개변수가 정수형인 경우이고, 실수형인 경우에는 XMM Register 사용 반환값은 정수형의 경우 RAX(하위 64bit), RDX(상위 64bit) 사용, 실수형인 경우 XMM0, XMM1..
Calling Convention - 32bit Programs Stack Frame Stack Frame이란? Stack Frame은 함수 호출 과정에서 지역변수 선언으로 인해 할당되는 블록 예를 들어, int a, int b 선언 시에 Stack Frame에 a와 b가 할당 Stack Frame은 함수가 Return되면 모두 반환 ESP Register(Stack Pointer) Stack에 Data를 쌓거나, 반환하기 위해서는 현재 어느 위치까지 데이터를 저장했는지 알아야 함 함수 종료 시, Stack Frame 단위로 ESP Register 이동 EBP Register(Base/Frame Pointer) Stack에 데이터를 저장할 때에는 데이터의 크기를 알 수 있기 때문에 데이터 크기만큼 이동하면 되지만, 함수가 Return 될 때에는 얼마만큼 ESP Reg..