iSCSI (Internet Small Computer System) เป็น SCSI Protocol ที่เข้าถึง Storage Devices ผ่าน IP Protocol ด้วย iSCSI คุณเชื่อม Server เข้ากับ Shared Network Storage ผ่าน TCP/IP Network ทั่วไปโดยไม่ต้องใช้ Fiber Channel (FC) บทความนี้แสดงวิธีตั้งค่า iSCSI Target (Virtual Disk) บน Server รัน Windows Server 2019 และเชื่อมต่อ iSCSI LUN นี้บน Server อื่นๆ (Windows Server 2016 และ 2012 R2 ตั้งค่าเหมือนกัน) ตัวอย่างการใช้ iSCSI: File Server ต้องการ Storage Space เพิ่ม เชื่อม Virtual Disk จาก Storage Server อีกเครื่องผ่าน iSCSI อีกตัวอย่างคือสร้าง Failover Cluster เมื่อหลาย Server ต้องเข้าถึง Shared Storage
สารบัญ
เพื่อใช้ iSCSI Disk ต้องตั้งค่า Virtual Disk (VHD/VHDX File ธรรมดา) บน Storage Server และ Publish เป็น iSCSI Target ซึ่ง iSCSI Initiators (Server หรือ Devices อื่นๆ) จะเชื่อมต่อเข้ามา
ตั้งค่า iSCSI Target บน Windows Server
เปิด Server Manager Enable Role iSCSI Target Server ใน File and Storage Services → File and iSCSI Services
ติดตั้ง Role จาก PowerShell: Install-WindowsFeature -Name FS-iSCSITarget-Server
สร้าง Virtual Disk บน iSCSI Server: Server Manager → File and Storage Services → iSCSI คลิก To create an iSCSI virtual disk, start the New iSCSI Virtual Disk Wizard
ใน Wizard เลือก Physical Partition วาง Virtual Disk File ตั้งชื่อ iSCSI Disk ใหม่ กำหนด Size, Type (Fixed Size, Dynamically Expanding, Differencing) และ iSCSI Target Name
ขั้นตอน Access Servers ระบุ Servers (iSCSI Initiators) ที่จะเชื่อมต่อ Target ได้ โดยเลือก Connection Options:
- IQN (ต้อง Enable iSCSI Initiator บน Server ก่อน Copy IQN)
- DNS Name
- IP Address
- MAC Address
ตัวอย่างใช้ IP Address Option
ขั้นตอนถัดไปตั้งค่า CHAP Authentication Protocol ต้องใช้หากต้องการ Authenticate Initiator Connection Enable ใส่ Username และ Password 12 ตัวขึ้นไป Next → Next → Finish ตรวจสอบว่า iscsiDisk2.vhdx สร้างใน D:\iSCSIVirtualDisks แล้ว
สร้าง iSCSI Disk ด้วย PowerShell สร้าง Virtual Disk 200 GB:
New-IscsiVirtualDisk -Path c:\iSCSIVirtualDisks\iscsiDisk2.vhdx -Size 200GB
Default สร้าง Dynamic Disk 4,096 KB ไม่ขึ้นกับ Size Parameter Dynamic Disk จะโตตามความต้องการ
หากต้องการ Fixed-sized Disk (Reserve Space บน Physical Drive ตอนสร้าง) ใช้ Parameter UseFixed:
New-IscsiVirtualDisk -Path c:\iSCSIVirtualDisks\iscsiDisk2.vhdx -Size 200GB –UseFixed
ใช้ Fixed Size VHDX สำหรับ Disk ที่มี Activity สูงและ IOPS Requirement สูง เพราะ Dynamic Disks ใช้ Resource เพิ่มสำหรับ Incremental Operations
ตั้งชื่อ Target อนุญาต Access จาก Initiator Server IP Address:
New-IscsiServerTarget -TargetName "iscsiTarget33" -InitiatorId @("IPAddress:172.17.244.8")
หากต้องการใช้ IQN Name (iSCSI Qualified Name — Unique iSCSI Device ID ใน Network) แทน IP Address:
New-IscsiServerTarget -TargetName iscsiTarget33 -InitiatorIds "IQN:1991-05.com.microsoft:win2019test.ddd.com"
ตรวจสอบผลลัพธ์: Get-IscsiServerTarget | fl TargetName, LunMappings
ดู Full Target Name ด้วย Get-IscsiTarget Cmdlet แล้ว Connect Target:
Connect-IscsiTarget -NodeAddress iqn.1991-05.com.microsoft:win2019test-iscsitarget33-target
ติดตั้งและตั้งค่า iSCSI Initiator บน Windows Server
ขั้นตอนต่อไป เชื่อมต่อ Virtual iSCSI Disk ที่สร้างจาก Server ที่สอง (Initiator) เปิด Control Panel Start iSCSI Initiator (หรือรัน iscsicpl.exe)
ใน Service Management Console (services.msc) ตั้ง Automatic Startup Type สำหรับ Microsoft iSCSI Initiator Service หรือคำสั่ง: Set-Service -Name MSiSCSI -StartupType Automatic
ไปแท็บ Discovery คลิก Discover Portal ใส่ IP Address ของ Server แรก (iSCSI Target) เพื่อ Route Storage Traffic ผ่าน Network Interface เฉพาะ คลิก Advanced เปลี่ยน Default Values ใน Dropdown Lists: Local Adapter → Microsoft iSCSI Initiator, Initiator IP → 172.17.244.8
เปิด TCP Ports 860 และ 3260 ใน Windows Firewall เพื่อเชื่อมต่อ iSCSI Storage
ไปแท็บ Targets จะเห็น Connection ใหม่ Enable ด้วยการคลิก Connect → Advanced เลือกค่าใน Dropdown Lists ติ๊ก Enable CHAP log on ใส่ Username และ Password 12 ตัว
Initialize iSCSI Disk ที่อยู่ใน Offline State เริ่มต้น เลือก Online แล้ว Initialize Disk ใน Context Menu ของ Disk ใหม่ใน Disk Management Console สร้าง Partition หนึ่งหรือหลายตัว มอบ Drive Letters และ Labels Format Volumes เป็น NTFS
Quick Initialize และ Format Disk ใหม่ด้วย PowerShell One-liner (ดูตัวอย่างในบทความ Disk และ Partition Management with PowerShell):
Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PartitionStyle MBR -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false
หมายเหตุ: iSCSI Disks ไม่รองรับ ReFS
ตอนนี้ใช้ Virtual Disk เชื่อมต่อผ่าน iSCSI จาก Server อื่นเป็น Common Local Drive ได้แล้ว
Virtual iSCSI Disk แบบนี้อาจใช้สร้าง Virtual RAM Drive ใน Memory บน Windows Server ได้
เชื่อมต่อ iSCSI Disk บน Initiator Host ด้วย PowerShell ได้ หา Target IQN ด้วย Get-iSCSITarget Cmdlet
เชื่อมต่อ iSCSI Target: Connect-IscsiTarget –IsPersistent $False ใส่ IQN
หากใช้ CHAP Authentication เพิ่ม Credentials: Get-iScsiTarget | Connect-iScsitarget –AuthenticationType ONEWAYCHAP –ChapUserName <username> -ChapSecret <secret>
หากต้องการ High Availability และ Load Balancing สำหรับ iSCSI Disks ใช้ Redundant Network Components (Network Adapters, Switches) และ MPIO Module