odroid c2를 이용해서 PXE 서버를 구축했던 일이 있어서 경험을 공유합니다.
PXE는 사전 부팅 실행환경의 약어 입니다. 간단히 이야기 하면
네트워크 카드를 통해서 부팅에 필요한 자료를 땡겨와서 부팅을 하는 기능으로 근 10년간 나온 내외장 랜에는 대체로 내장되어 있는 기능입니다.
크게 2가지 요소로 구성되는데요
DHCP 서버->공유기에 들어 있는 그것 맞습니다 보통은 IP 할당을 요청하면 동적으로 IP를 재공해 줍니다. PXE 서버를 운영할 경우 IP 할당과 더불어서 클라이언트가 PXE에 대한 자료를 요구할때 TFTP 서버의 주소와 부트로더의 파일명을 클라이언트에 재공합니다.
FTFP 서버->PXE 클라이언트가 요구하는 부트로더와 부수된 파일들을 전송해 주는 역확을 합니다. 부트로더는 운영체제를 로드하는역활을 하는 프로그램입니다.
PXE를 주위에서 쉽게 찾을 수 있는곳이 PC방인데요 요즘 PC 방에서 자주 볼 수 있는 노하드 시스템이 이 PXE를 이용합니다.
pc방의 노하드 시스템은 위의 구조에 더불어서 ISCSI 라는 기능을 포함해 운영체제가 자정되어 있는 디스크 자체를 원격으로 재공합니다.
물론 iscsi 서버는 상당한 디스크 IO 성능을 요구하기 때문에 주로 x86으로 구축됩니다. 저는 용도가 그런 부분이 아니였기 때문에 odroid c2의 성능으로도 쾌적하게 구축이 가능했습니다.
1. 목적
windows PE 이미지 파일을 원격으로 전송해서 부팅할 수 있도록 구축해서 복구나 백업이 필요할때 부팅용 USB를 굽지 않아도 되는 환경 구축 sdi.efi remdisk 등을 이용해서 전채가 메모리에 올라가는 PE를 사용해서 호스트의 디스크 입출력 성능에 관계 없이 최적하게 사용할 수 있도록 구축했습니다. 일단 PE는 이종의 기기들에 대해서 드라이버 지원을 하도록 만들어지기 때문에 여러가지 시스템이 뒤죽박죽 섞여 있는 가정에서는 이점이 있기도 하고요...
2. 구성
ODROID c2 + ubuntu
-DHCP 서버->isc-dhcp-server
-TFTP 서버->TFTP-hap
우분투에서 저장소에 포함되어 있어서 간단히 설치할 수 있는 패키지 를 사용해서 dhcp 서버와 TFTP 서버를 구축하였습니다.
-부트로더 GRUB2
부트로더는 GRUP2 를 사용해서 리눅스 기반의 복구도구와 윈도우즈 기반의 복구도구를 체인로드 하도록 설정했습니다.
운영체제 선택창도 좀 멋지고 해서 이쪽이 맘이들더군요..
부팅 영상...
이렇게 구축하였을때 이미지 파일을 전송하는 속도가 15MB/s 나왔습니다. 대용량의 PE나 복구도구를 사용하는 경우 시간이 좀 걸립니다만.. 매일매일 HDD가 터지는것도 아니고 해서 큰 불편은 아니고 TFTP 라는 프로토콜이 속도에 있어서 쾌적하지 못해서인지..
UEFI에 포함되어 있는 efi 네트워크 드라이버가 최소한으로 디자인 되어서 인지 속도가 빠방한 서버를 써도 100MB/s씩 빵빵 터지지 않기 때문에 큰 제한 사항은 아니였습니다.
튜토리얼 같은것도 만들어 볼까 했는데 검색하면 제가 쓰는것보다 친절한 분들이 많아서.. 쩝..
근데 이게 x86이랑 설정법이 차이나는게 없어서.. 튜토리얼은 따로 파기가 좀 그렇더라고요..