CentOS 7.x 노하드 시스템 iSCSI & PXE 환경구축
하드디스크 없이 네트워크로 윈도우를 부팅하려면 먼저 iSCSI 스토리지 서버와 PXE 서버 구축이 되어 있어야 합니다.
그리고 미리 윈도우 이미지를 만들어 두어야 합니다.
1. 패키지 설치
yum install epel-release wget scsi-target-utils iscsi-initiator-utils dnsmasq
2. 방화벽 설정
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --zone=public --add-service=dns
firewall-cmd --permanent --zone=public --add-service=dhcp
firewall-cmd --permanent --zone=public --add-service=iscsi-target
firewall-cmd --permanent --zone=public --add-port=69/udp
firewall-cmd --permanent --zone=public --add-port=4011/udp
firewall-cmd --reload
3. iSCSI 스토리지 설정
vi /etc/tgt/targets.conf
<target disk01>
backing-store /iscsi/disk01.img
initiator-address ALL
#incominguser iscsi pass1234
</target>
systemctl enable tgtd
systemctl start tgtd
OS 이미지인 disk01.img 는 미리 작업해서 올려두어야 합니다.
tgt-admin -s 명령어로 정상적으로 설정되었는지 확인합니다.
Target 1: disk01
System information:
Driver: iscsi
State: ready
I_T nexus information:
I_T nexus: 1
Initiator: iqn.1994-05.com.redhat:20307930bc alias: localhost.localdomain
Connection: 0
IP Address: 192.168.1.3
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 33776997205 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: rdwr
Backing store path: /iscsi/disk01.img
Backing store flags:
Account information:
ACL information:
ALL
iscsi 초기자로 테스트하는 방법
# iSCSI 설정
iscsiadm -m discovery -t st -p 192.168.1.3
iscsiadm -m node --targetname disk01 --portal 192.168.1.3:3260 --login
( 안되면 tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL 명령어 실행 후 다시 재시도)
# iSCSI 해제
iscsiadm -m node --targetname disk01 --portal 192.168.1.3:3260 --logout
iscsiadm -m discovery --portal 192.168.1.3:3260 --op=delete
4. PXE 부팅 환경 작업
mkdir /var/lib/tftpboot
wget -O /var/lib/tftpboot/undionly.kpxe http://boot.ipxe.org/undionly.kpxe
5. dnsmasq 환경 설정
vi /etc/dnsmasq.d/dhcp.conf
domain=localhost.localdomain
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,1h
dhcp-option=option:router,192.168.1.1
enable-tftp
tftp-root=/var/lib/tftpboot
dhcp-match=iPXE,175
dhcp-option=net:iPXE,17,"iscsi:192.168.1.3:::1:disk01"
pxe-service=net:#iPXE,x86PC,"PXE Network booting",undionly.kpxe
systemctl enable dnsmasq
systemctl start dnsmasq
아이피 환경은 맞게 수정하셔야 합니다.
그리고 iPXE 는 다른 이름으로 해도 상관없습니다.
접속주소는 iscsi:아이피주소:프로토콜:포트번호:룬번호:타겟명 이런 형태입니다.
예) iscsi:192.168.1.3:tcp:3260:1:disk01
MAC Address 별로 iscsi 타겟을 따로 지정하려면 https://ivps.tistory.com/371 여기를 참고하세요.
이제 설정이 완료되었습니다.
다른 클라이언트에서 테스트 해보고 안되면 서버를 재부팅 한 다음에 다시 시도해보세요~
PXE 네트워크 부팅 동영상 보기
https://youtu.be/jZdWfViNcIU ( Win10 )
https://youtu.be/tCZcA25oKqg ( Win7 )
윈도우7 은 iSCSI 관련 핫픽스 패치를 한 이후에 이미지를 만들면 부팅이 되던데,
윈도우10 은 블루스크린이 뜨면서 부팅실패를 하는군요~
윈도우7용은 패치 파일 첨부합니다.
Windows6.1-KB2550978-x64[1].msu
Windows6.1-KB976042-v2-x64[1].msu
윈도우10은 성공했다는 글은 봤는데 좀 복잡해서 나중에 패치가 나오길 기다려봅니다~ ㅎ