1 / 13

DISKLESS CLUSTER

수원대학교 Linuxus. DISKLESS CLUSTER. 전체 네트워크 구성도. Diskless Cluster 네트워크 구성도. Diskless server. Node n…. Node1. Node2. Node3. # Diskless server : Node 들에게 kernel 과 root 파일 시스템 제공 DHCP 서버로 Node 에 각각 IP 할당

darby
Download Presentation

DISKLESS CLUSTER

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 수원대학교 Linuxus DISKLESS CLUSTER

  2. 전체 네트워크 구성도

  3. Diskless Cluster 네트워크 구성도 Diskless server Node n… Node1 Node2 Node3 # Diskless server : Node들에게 kernel 과 root 파일 시스템 제공 DHCP 서버로 Node에 각각 IP할당 # Node : Diskless server 의 자원을 이용해서 부팅(Netbooting)

  4. Diskless Cluster 부팅과정 1. Diskless Node 를 부팅 시작 2. 네트워크 카드가 자신에 대한 정보를네트워크에서 찾음 3. DHCP 서버가 MAC 주소를 인식하고 IP 할당 4. pxelinux.0 과 Kernel 을 서버(Diskless server) 에서 받음 5. 시스템을 시작하고 NFS 를 이용해서 root 파일 시스템을 마운트 <참고:Diskless Node 들의 NIC Card가 PXE 를 지원하는지 확인 >

  5. Client Kernel 만들기 이 작업은 Diskless server에서 수행하게 되며 HDD가 없이 Booting 되는 것이므로 Netbooting이 가능 하도록 Kernel 옵션을 설정해주면 된다. 그리고 설치된 NIC 를 지원하도록 설정을 해 주어야 한다. # make menuconfig Device Driver  Networking options  ※ 커널 수준에서 Netbooting이 가능하도록 설정

  6. Client Kernel 만들기 File systems  Network File Systems  ※Kernel 수준에서 NFS 를 지원하도록 설정 # make dep ; make ; make modules_install ; make install 커널 컴파일 이 작업이 끝나고 나면 /boot 디렉토리에 vmlinuz-[커널버전] 이라는 커널이 생성. 생성된 커널을 이용하여 Diskless Node 들을 부팅

  7. TFTP 설정 tftp 설치후 /etc/xinetd.d/tftp 파일을 다음과 같이 수정 # cat /etc/xinetd.d/tftp service tftp { disable = no  yse 를 no 로 수정 socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot  pxelinux.0 가 저장된 디렉토리 per_source = 11 cps = 100 2 flags = IPv4 }

  8. PXE 설정 • PXE 는 network 가 network 를 통해서 boot code 를 load 하는 표준이다. • PXELINUX 설명서에 의하면 client는 자신의 MAC 주소를 이용하여 설정파일을 찾는다. MAC 주소가 00:11:22:33:44:55:66 이라면 /tftpboot/pxelinux.cfg/01-00-11-22-33-44-55-66 파일을 찾고 없을 시 /tftpboot/pxelinux.cfg/default 파일을 사용한다. • 여러 대가 같은 설정일 경우 default 파일을 사용하는 것이 편리하다. • MAC 주소가 XX:XX:XX:XX:XX:XX:XX 의 파일 찾는 순서 /tftpboot/pxelinux.cfg/01-XX-XX-XX-XX-XX-XX /tftpboot/pxelinux.cfg/C0A80A0A /tftpboot/pxelinux.cfg/C0A80A0 /tftpboot/pxelinux.cfg/C0A80A /tftpboot/pxelinux.cfg/C0A80 /tftpboot/pxelinux.cfg/C0A8 /tftpboot/pxelinux.cfg/C0A /tftpboot/pxelinux.cfg/C0 /tftpboot/pxelinux.cfg/C /tftpboot/pxelinux.cfg/default 설정 파일 찾는 순서 1./tftpboot/pxelinux.cfg/01-[MAC 주소] 2./tftpboot/pxelinux.cfg/[IP 주소] 3./tftpboot/pxelinux.cfg/default

  9. PXE 설정 http://www.kernel.org/pub/linux/utils/boot/syslinux에서 syslinux-3.31 다운로드 압축 해제 후 pxelinux.0 파일을 /tftpboot 디렉토리 생성 후 복사. /tftpboot/pxelinux.cfg 디렉토리 를 생성 후 default 파일 생성 및 수정 # cat /tftpboot/pxelinux.cfg/default label linux kernel DisklessKernel 커널명 /tftpboot 디렉토리에 위치함 append root=/dev/nfs ip=dhcp init=/sbin/init

  10. 클라이언트 File System 생성 #mkdir /tftpboot/192.168.10.3  directory 디렉토리 생성 # cp -a /bin /boot /dev /etc /lib /sbin /tftpboot/192.168.10.3 부팅에 필요한 파일, 디렉토리 복사 [root@Cluster5 192.168.10.3]# cat/tftpboot/192.168.10.3/etc/fstab fstab 설정 192.168.10.5:/tftpboot/192.168.10.3 / nfs rw,defaults 0 0 192.168.10.5:/usr /usr nfs rw,defaults 0 0 192.168.10.5:/home /home nfs rw,defaults 0 0 192.168.10.5:/opt /opt nfs rw,defaults 0 0 192.168.10.5:/var /var nfs rw,defaults 0 0 192.168.10.5:/root /root nfs rw,defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 /dev/had /media/cdrom auto pamconsole,exec,noauto,managed 0 0

  11. 클라이언트 Network 설정 • # cat /tftpboot/192.168.10.3/etc/sysconfig/network-scripts/ifcfg-eth0  IP 설정 DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.10.255 HWADDR=00:D0:B7:B8:73:57 IPADDR=192.168.10.3 NETMASK=255.255.255.0 NETWORK=192.168.10.0 ONBOOT=yes TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=yes ※ Diskless Node2를 위해 /tftpboot/192.168.10.4 디렉토리 를 만들고 위와 같은형식으로 작업 수행

  12. DHCP 설정 # cat /etc/dhcpd.conf ignore client-updates; option domain-name-servers 168.126.63.1;  DNS 서버 IP option routers 192.168.10.5; 서비스 하는 server 의 IP subnet 192.168.10.0 netmask 255.255.255.0 { 서비스 하는 server 의 network, subnet option time-offset -18000; # Eastern Standard Time default-lease-time 21600; max-lease-time 43200; } group { filename "pxelinux.0"; use-host-decl-names on; host node1 {  node 1 의 설정내용 fixed-address 192.168.10.3;  node 1 에게 할당할 IP 주소 hardware ethernet 00:D0:B7:B8:73:57;  client 의 MAC 주소 option root-path "/tftpboot/192.168.10.3"; }  node1 이 사용할 root 디렉토리 host node2 {  node 2 의 설정내용 fixed-address 192.168.10.4;  node 2 에게 할당할 IP 주소 hardware ethernet 00:D0:B7:B8:71:EB;  client 의 MAC 주소 option root-path "/tftpboot/192.168.10.4"; }  node2 가 사용할 root 디렉토리 }

  13. NFS 설정 • file system의 일부를 client 에게 제공하여 client 의 root file system으로 mount 할 수 있도록 해야 한다. • iptables -F 명령으로 방화벽을 내리고 시작하는 것이 좋음 방화벽은 차후에 설정. • [root@Cluster5 ~]# cat /etc/exports ※ ‘*’ 대신 mount 허용하고 싶은 IP 를 적어 주어도 된다. # showmount -e 또는 # exportsfs -v 명령어로 마운트 가능한 디렉토리를 볼수 있다 # mknod /dev/nfs c 0 255 접근이 가능하도록 장치파일을 생성 # rdev /tftpboot/DisklessKernel /dev/nfs  /dev/nfs device를 root file system으로 mount 하여 사용 /tftpboot/192.168.10.3 *(rw,sync,no_root_squash,no_subtree_check) /tftpboot/192.168.10.4 *(rw,sync,no_root_squash,no_subtree_check) /usr *(rw,sync,no_root_squash,no_subtree_check) /opt *(rw,sync,no_root_squash,no_subtree_check) /var *(rw,sync,no_root_squash,no_subtree_check) /home *(rw,sync,no_root_squash,no_subtree_check) /root *(rw,sync,no_root_squash,no_subtree_check)

More Related