네트워크 부트의 활용 PXE, initramfs

네트워크 부트란:
머신이 부팅하기 위해 필요한 데이터나 파일을 네트워크로부터 얻어서 부팅하는 것이다.

네트워크 부트의 특징과 이점
네트워크 부트를 사용하면 머신이 기동할 때 로컬의 2차 기억장치가 필요없게 된다.
initramfs:
커널이 루트 파일시스템을 마운트하고 init을 실행하기 전에 커널의 외부에서 밖에 수행할 수 없는 초기화를 하기 위한 구조다.
부팅할 머신상에 아무것도 사전에 준비해두지 않아도 파일서버상에 다양한 시스템용 커널과 initramfs를 준비해두면 어떤 머신에서라도 임의의 시스템으로서 기동할 수 있다는 것을 의미한다.
Diskless 시스템을 구성하는것도 가능하다.

네트워크 부트의 동작 PXE
PXE 부트의 흐름
1. 통상의 BIOS가 초기화 작업을 한다. 이 과정에서 확장 BIOS를 스캔해서 PEX BIOS가 등록된다.
2. 부팅 디바이스로 PXE가 선택되면 PXE BIOS로 제어를 넘긴다.
3. 제어를 넘겨받은 PXE BIOS는 DHCP를 사용해서 IP주소 등의 정보를 얻은 후 IP 통신을 준비한다.
4. 다음으로 PXE BIOS는 파일서버로부터 부트로더를 얻어서 실행한 후 제어를 넘긴다. 파일 서버 주소와 부트로더의 파일명은 3.에서 DHCP서버로 부터 알게 된다.
5. 부트로더는 실행되면 4.와 동일한 파일서버부터 부트로더 자신의 설정파일을 얻는다. 파일서버의 주소는 PXE BIOS로 부터 부트로더로 통지된다.
6. 마찬가지로 부트로더는 실행할 커널과, 설정파일에 지정되어 있다면 initramfs의 파일을 파일서버로부터 얻어서 메모리상에 위치시킨 후 커널에 제어를 넘긴다.
- PXE부트를 지원하는 NIC
최신 서버 머신에 탑재되어 있는 NIC라면 대부분 지원하고 있다.
- DHCP 서버
PXE 부트에 필요한 정보를 제공하고 있다.
- TFTP 서버
PXE BIOS에 필요한 파일을 얻기 위해 사용한다. atftpd등의 TSIZE 옵션을 지원하고 있는 것으로 사용할 필요가 있다.
- PXE에 맞는 부트로더
PXE 부트를 지원하는 것을 사용할 필요가 있다.CRUB을 PXE지원 가능하게 한 PXEGRUB나 SYSLINUX의 PXE버전인 PXELINUX가 있다.
- 커널
PXE 부트용으로 특별히 준비할 필요는 없다.
- 루트 파일시스템 초기화용 시스템(initramfs)
루트 파일시스템을 메모리 파일시스템상에 생성하고자 할 경우라면 필수다.
- 루트 파일시스템
어떠한 루트파일시스템을 사용하더라도 OS가 동작하기 위해 필요한 파일을 어떠한 형태로든 준비해둘 필요가 있다.

네트워크 부트 활용의 예
로드밸런서
DB서버 /파일서버
유지보수용 부트 이미지

네트워크 부트를 구성하기 위해
initramfs의 공통화와 역할의 식별
Diskless 구성할 경우 고려할 점
1.로그 출력
NFS, syslog의 전송기능을 사용하는 방법
2.파일의 변경관리
3.마스터 파일의 보안

댓글

이 블로그의 인기 게시물

javascript ===, ==, >=, <=연산자

SQL oracle 내장함수[문자열 처리]

java 입출력2