= Diskless Cluster using Redhat 9.0 + Openmosix = ±èµ¿Èñ KAIST ¹°¸®Çаú idji (at) kaist.ac.kr v. 0.8 ---- History: 0.8 : ÃÖÃÊÀÛ¼º (2003/11/19) ---- [[TableOfContents]] == µé¾î°¡¸ç == ¸ÕÀú ÀÌ ±ÛÀº Ŭ·¯½ºÅ͸¦ óÀ½ ¸¸µé¾î º¸·Á´Â »ç¶÷µéÀ» ´ë»óÀ¸·Î ÇßÀ½À» ¹àÈù´Ù. ÀÌ ¹®¼­¿¡¼­´Â Diskless Ŭ·¯½ºÅ͸¦ ¸¸µå´Â °úÁ¤À» ¼³¸íÇÑ´Ù. »ç¿ëµÈ ¹èÆ÷ÆÇÀº Redhat 9.0 ÀÌ°í Ä¿³Î 2.4.22 ¸¦ openmosix ÆÐÄ¡¸¦ ÇÑ ´ÙÀ½ ÄÄÆÄÀÏ ÇÏ¿© »ç¿ëÇÏ¿´´Ù. ºÎÆùæ¹ýÀº pxelinux ¸¦ ÀÌ¿ëÇÑ PXE ºÎÆà ¹æ¹ýÀ» ½è´Ù. »ç¿ëµÈ Çϵå¿þ¾î´Â ´ÙÀ½°ú °°´Ù. * »ç¿ëµÈ ÁÖ¿ä Çϵå¿þ¾î * ¼­¹ö CPU: athlon MP 1900+ 2°³ M/B: asus a7m-266d NIC: 3com 905CX-TX-M (eth1), 3com 905CX-TX-NM (eth0,2) * Ŭ¶óÀ̾ðÆ® CPU: Pentium 4 1.7G M/B: asus p4b NIC: 3com 905CX-TX-M (eth0), 3com 905CX-TX-NM (eth1) ¿©±â¼­ ÁÖ¸ñÇؾßÇÒ °ÍÀº Ŭ¶óÀ̾ðÆ®¿¡ ³×Æ®¿öÅ© Ä«µå·Î 3com 905CX-TX-M À» ½è´Ù´Â °ÍÀε¥, ÀÌ°ÍÀº 905CX-TX-M ÀÌ PXE ºÎÆÃÀ» Áö¿øÇϱ⠶§¹®ÀÌ´Ù. ³×Æ®¿öÅ© ºÎÆÃÀ» À§Çؼ­´Â °¡Áö°í ÀÖ´Â ³×Æ®¿öÅ© Ä«µå°¡ PXE ¸¦ Áö¿øÇÏ´Â Áö »ìÆì¾ßÇÑ´Ù. ÁÖÀÇÇÒ °ÍÀº PXE ¿Í Wake-On-Lan Àº ÀüÇô º°°³¶ó´Â »ç½ÇÀÌ´Ù. Çò°¥¸®Áö ¸»±æ. 3comÀÇ °æ¿ì Managed ¾î¼±¸ ÇÏ´Â ¸»ÀÌ ºÙ¾îÀÖ°í ¾î¶² ³×Æ®¿öÅ© Ä«µå´øÁö ³×Æ®¿öÅ© ºÎÆÃÀ» Áö¿øÇϸé PXE 2.x ÀÎÁõ ¾î¼±¸ ÇÏ´Â ¸»ÀÌ ÀÖ´Ù. Openmosix ´Â ÀÏÁ¾ÀÇ Ä¿³Î ÆÐÄ¡·Î¼­ »ó´çÈ÷ ³î¶ó¿î ±â´ÉÀ» ÇÑ´Ù. ¿¹¸¦ µé¾î, ÄÄÇ»Å͸¦ ¿©·¯ ´ë ºÙ¿©¼­ Ŭ·¯½ºÅ͸¦ ¸¸µé¾ú´Ù Ä¡´õ¶óµµ, Äڵ带 Â¥¼­ ÄÄÆÄÀÏÀ» ÇÑ ´ÙÀ½ 2 °³ÀÇ ½ÇÇà ÆÄÀÏÀ» µ¿½Ã¿¡ ½ÇÇà½ÃÅ°¸é ¸ðµÎ ·Î±äµÇ¾îÀÖ´Â ÄÄÇ»ÅÍÀÇ CPU ¿¡¼­ ¼öÇàµÈ´Ù. ÀÌ°É ´Ù¸¥ ÄÄÇ»ÅÍÀÇ CPU ¿¡¼­ ½ÇÇà½ÃÅ°·Á¸é PBS °°Àº ½ºÄÉÁì·¯¸¦ ½á¼­ batch job À¸·Î ½ÇÇàÇØ¾ß ÇÑ´Ù. ±×·¯³ª Openmosix Ä¿³ÎÀº ÀڱⰡ ¾Ë¾Æ¼­ Ŭ·¯½ºÅÍ »ó¿¡ ³î°í ÀÖ´Â CPU ¸¦ ã¾Æ¼­ ±× °÷¿¡¼­ ½ÇÁ¦·Î ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ°Ô ÇÑ´Ù. »ó´çÈ÷ À¯¿ëÇÑ ±â´ÉÀ¸·Î »ý°¢µÈ´Ù. MPI Àü¿ë °è»ê¸¸ Çϸé ÇÊ¿ä¾ø´Â ±â´ÉÀÌ°ÚÀ¸³ª ¸¸¾à serial Äڵ带 ¿©·¯ ¸íÀÌ ¸¹ÀÌ ½ÇÇàÇÑ´Ù¸é ±× À¯¿ë¼ºÀÌ ¸Å¿ì ³ô´Ù. == ¾î¶»°Ô ÀÛµ¿µÇ³ª? == Ŭ¶óÀ̾ðÆ®°¡ ³×Æ®¿÷À» ÅëÇØ ºÎÆõǴ °úÁ¤Àº ´ÙÀ½°ú °°´Ù. Ŭ¶óÀ̾ðÆ® ÄÄÇ»ÅÍ¿¡ ¹ÙÀÌ¿À½º ¼¼ÆÃÀÌ ³×Æ®¿öÅ© ºÎÆÃÀ¸·Î ¼³Á¤ÀÌ µÇ¾î ÀÖ´Ù´Â °¡Á¤ÇÏ¿¡ Ŭ¶óÀ̾ðÆ®¸¦ ÄÑ¸é ³×Æ®¿÷ Ä«µå°¡ Àڽſ¡ ´ëÇÑ Á¤º¸¸¦ ³×Æ®¿÷¿¡¼­ ã´Â´Ù. À̶§ Ŭ¶óÀ̾îÆ®¿Í ¿¬°áµÈ ¼­¹ö¿¡ DHCP ¼­¹ö°¡ Á¦´ë·Î ¼³Á¤ÀÌ µÇ¾î¼­ ÀÛµ¿ÇÏ°í ÀÖ´Ù¸é Ŭ¶óÀ̾ðÆ® ÄÄÇ»Å͸¦ ÀνÄÇÏ°í Ŭ¶óÀ̾ðÆ®ÀÇ IP ¿Í ´Ù¸¥ Á¤º¸¸¦ º¸³»°Ô µÈ´Ù. ´Ù¸¥ Á¤º¸¶ó´Â °ÍÀº ÆÄÀÏÀÌ µÉ ¼öµµ Àִµ¥ ¿©±â¼­´Â pxelinux.0 ¶ó´Â ºÎÆ® ·Ò À̹ÌÁö ¸¦ º¸³»°í ÀÌ À̹ÌÁö´Â ¼­¹ö·Î ºÎÅÍ kernelÀ» ¹Þ¾Æ¿À°Ô µÇ¾î ºÎÆÃÀÌ ÀÌ·ç¾îÁø´Ù. ¿©±â¼­ ÆÄÀÏÀÏ º¸³»°í ¹Þ´Â °ÍÀº tftp ¸¦ ÅëÇØ ÀÌ·ç¾îÁø´Ù. ÀÏ´Ü ºÎÆÃÀÌ ½ÃÀ۵Ǹé Ä¿³Î¸»°í ºÎÆÿ¡ ÇÊ¿äÇÑ ´Ù¸¥ ÆÄÀϵéÀÌ ÇÊ¿äÇÏ°Ô µÇ´Âµ¥, ÀÌ·± ÆÄÀϵéÀº nfs ¸¦ ÅëÇØ ¼­¹ö¿¡¼­ °øÀ¯µÈ´Ù. µû¶ó¼­ ¼­¹ö¿¡ ¹Ýµå½Ã ÇÊ¿äÇÑ ¼­ºñ½º´Â DHCP,TFTP,NFS ÀÌ°í, ÀÌÈÄ ºÎÅÍ ÀÌ ¼­ºñ½ºµéÀ» ¼³Á¤ÇÏ´Â °Í°ú pxelinux µî ³×Æ®¿÷ ºÎÆÃÀÇ ÀÚ¼¼ÇÑ ¼³Á¤¿¡ ´ëÇØ ¼³¸íÇÏ°Ú´Ù. == Çϵå¿þ¾î ¼³Ä¡ ¹× ³×Æ®¿÷ ±¸¼º == ´Ü¼øÈ÷ Å©·Î½º ÄÉÀ̺íÀ» »ç¿ëÇÏ¿© ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ®¸¦ ¿¬°áÇÑ´Ù. Å©·Î½º ÄÉÀ̺íÀº ±¸ÀÔÀ» ÇϵçÁö Á÷Á¢ ¸¸µé´øÁö ÇϸéµÈ´Ù. ¸¸µå´Â ¹ýÀº ÀÎÅͳÝÀ» °Ë»öÇÏ¸é ¸¹ÀÌ ³ª¿Â´Ù. ¼­¹öÀÇ eth1 Àº ¿ÜºÎ·Î ¿¬°áµÇ´Â ¼±À» ²È¾Ò°í, eth0 °ú eth2 ´Â Ŭ¶óÀ̾ðÆ®ÀÇ eth0 ¿Í eth2 ¿¡ °¢°¢ ¿¬°áÇÑ´Ù. eth0,1,2 ´Â ³×Æ®¿÷ Ä«µå¸¦ ²È´Â ½½·Ô°ú ¸ÞÀκ¸µåÀÇ Æ¯¼º¿¡ µû¶ó °áÁ¤µÇ´Âµ¥, ¿øÇÏ´Â µ¥·Î eth0,1,2 °¡ °áÁ¤µÇÁö ¾Ê¾Ò´Ù¸é ±×³É ½½·ÔÀÇ À§Ä¡¸¦ ¹Ù²Ù¾î ²ÈÀ¸¸é µÇ°Ú´Ù. (¼ÒÇÁÆ®¿þ¾îÀû ¹æ¹ýÀº ¸ð¸§.) Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö¸¦ ¿¬°áÇÏ´Â ³×Æ®¿÷ Ä«µåµé¿¡´Â 192.168.x.x ¶Ç´Â 10.0.x.x °°Àº »ç¼³ IP ¸¦ ÇÒ´çÇÑ´Ù. ¿©±â¼­´Â 10.0.0.1 (eth0,¼­¹ö), 10.0.1.1 (eth2,¼­¹ö), 10.0.0.2 (eth0,Ŭ¶óÀ̾ðÆ®), 10.0.1.2 (eth1,Ŭ¶óÀ̾ðÆ®) ÀÌ´Ù. ¿Ö ³×Æ®¿÷Ä«µå¸¦ 2À徿 ¿¬°áÇÏ´À³Ä°í ¹°À» ¼öµµ ÀÖ´Ù. ¿ø·¡´Â channel bonding À» Çغ¸·ÁÇ߱⠶§¹®ÀÌ´Ù. ±×·¯³ª, ¾ÆÁ÷ Àß ¾ÈµÇ°í ÀÖ´Ù. == ¼­¹ö¸¦ À§ÇÑ ¼³Ä¡ == ¾Æ·¡ÀÇ ³»¿ëÀº RedHat 9À» ¹èÆ÷ÆÇÀ¸·Î ¼³Ä¡ÇÏ´Â °ÍÀ» °¡Á¤ÇÕ´Ï´Ù. === ¹èÆ÷ÆÇ ¼³Ä¡ === ¼­¹ö¿¡ Redhat 9À» ¼³Ä¡ÇÑ´Ù. Ưº°ÇÑ ÀÛ¾÷ ¾øÀÌ ±×³É everything À» ¼±ÅÃÇÏ¿© ¼³Ä¡ÇÏ¸é º° ¹®Á¦ ¾ø´Ù. ±×¸®°í up2date ¸¦ ½á¼­ ÆÐÅ°Áö¸¦ ÃֽŹöÀüÀ¸·Î ¸¸µç´Ù. ´Ù¸¸ ÁÖÀÇ ÇÒ °ÍÀº / ÆÄƼ¼ÇÀ» Á» Å©°Ô Àâ¾Æ ³õ¾Æ¾ßÇÑ´Ù. ±×¸®°í ÇÑ°¡Áö. ntp ¸¦ ¼³Á¤ÇÏ¿© ½Ã°è¸¦ ¸ÂÃß¾î ³õ´Â´Ù. === ³×Æ®¿öÅ© Ä«µå ¼³Á¤ === ´ÙÀ½°ú °°ÀÌ (ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â°Ô °íÃļ­) ¼³Á¤ÇÑ´Ù. /etc/sysconfig/network-scripts/ifcfg-eth0 ÀÇ ³»¿ë: (ip-address ´Â ½ÇÁ¦¿Í ´Ù¸§.) {{{ DEVICE=eth0 BOOTPROTO=none BROADCAST=xxx.xxx.xxx.xxx IPADDR=xxx.xxx.xxx.xxx NETMASK=255.255.255.0 NETWORK=xxx.xxx.xxx.0 ONBOOT=yes TYPE=Ethernet USERCTL=no PEERDNS=no GATEWAY=xxx.xxx.xxx.1 }}} °¢°¢ÀÇ ¼ýÀÚ°¡ ¹«¾ùÀ» ÀǹÌÇÏ´Â Áö´Â ´Ù ¾Æ½Ã¸®¶ó ¹Ï´Â´Ù. ±Ã±ÝÇÑ °ÍÀº redhat ȨÆäÀÌÁö¿¡ °¡¸é customization guide °¡ ÀÖ´Ù. Âü°íÇϽñæ. /etc/sysconfig/network-scripts/ifcfg-eth1 ÀÇ ³»¿ë: {{{ DEVICE=eth1 ONBOOT=yes BOOTPROTO=none IPADDR=10.0.0.1 BROADCAST=10.0.0.255 NETMASK=255.255.255.0 NETWORK=10.0.0.0 }}} /etc/sysconfig/network-scripts/ifcfg-eth2 ÀÇ ³»¿ë: {{{ DEVICE=eth2 ONBOOT=yes BOOTPROTO=none IPADDR=10.0.1.1 NETMASK=255.255.255.0 NETWORK=10.0.1.0 }}} /etc/sysconfig/network ÀÇ ³»¿ë: {{{ NETWORKING=yes HOSTNAME=name.x.x.x GATEWAY=xxx.xxx.xxx.1 NISDOMAIN=nisdomain.org }}} ¸Ç ¸¶Áö¸· ºÎºÐÀÇ NISDOMAIN Àº NIS ¸¦ ¼³Á¤Çϱâ À§ÇØ ÇÊ¿äÇÑ °ÍÀÌ´Ù. ´çÀåÀº ÇÊ¿ä¾ø´Ù. /etc/hosts {{{ # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost xxx.xxx.xxx.xxx name.x.x.x 10.0.0.1 gateway.name.x.x.x 10.0.0.2 node1.name.x.x.x node1 10.0.1.1 client0.name.x.x.x client0 10.0.1.2 client1.name.x.x.x client1 }}} À§¿Í °°ÀÌ ¼³Á¤ÇÑ ÈÄ Àû¿ë½ÃÄÑÁØ´Ù. /etc/init.d/network restart ¶Ç´Â ±×³É reboot ÇÑ´Ù. === DHCP ¼³Á¤ === /etc/dhcpd.conf {{{ dns-update-style none; default-lease-time 21500; max-lease-time 43200; option subnet-mask 255.255.255.0; option broadcast-address 10.0.0.255; option routers 10.0.0.1; option domain-name-servers name.x.x.x; option domain-name "name.x.x.x"; subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.2 10.0.0.100; } group { filename "pxelinux.0"; use-host-decl-names on; host node1 { fixed-address 10.0.0.2; hardware ethernet 00:0A:01:D4:DA:5B; option root-path "/tftpboot/10.0.0.2"; } } }}} ÀÚ¼¼ÇÑ ³»¿ëÀº ºÎµð DHCP ¿¡ °üÇÑ ¹®¼­¸¦ ã¾Æº¸±â¸¦ ¹Ù¶õ´Ù...(ÀÚ¼¼ÇÑ °Ç º»Àεµ ¸ð¸¥´Ù.) ´Ù¸¸ ¿©±â¼­ ¤°í ³Ñ¾î°¥ °ÍÀº router °¡ ¼­¹öÀÇ eth0 (10.0.0.1) ·Î ¼³Á¤ÀÌ µÇ¾ú´Ù´Â °Í°ú Ŭ¶óÀ̾ðÆ®·Î º¸³¾ ÆÄÀÏÀÇ À̸§, IP µîÀÌ´Ù. À§ÀÇ ¼³Á¤Àº ethernet address °¡ 00:0a:01:d4:da:5b ÀÎ ³×Æ®¿÷ Ä«µå¸¦ ¹ß°ßÇÏ¸é ±× ÁÖ¼Ò¸¦ 10.0.0.2 ·Î Á¤ÇÏ°í, Ŭ¶óÀ̾ðÆ®ÀÇ root µð·ºÅ丮¸¦ ¼­¹öÀÇ /tftpboot/10.0.0.2 ·Î Á¤ÇÑ´Ù´Â °ÍÀÌ´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ È£½ºÆ®³×ÀÓ°ú dhcpd ¼³Á¤ÀÇ host ... °¡ °°¾Æ¾ß µÇ´ÂÁö´Â ¸ð¸£°ÚÁö¸¸ ¿©±â¼­´Â ¶È°°ÀÌ node1 À̶ó°í ¼³Á¤Çß´Ù. ´Ù ¼³Á¤ÇßÀ¸¸é /sbin/chkconfig dhcpd on À» ÇÏ¿© ºÎÆà µÉ ¶§ ½ÃÀ۵ǵµ·Ï ÇÏ°í, /etc/init.d/dhcpd start Çؼ­ DHCP µ¥¸óÀ» ½ÇÇàÇÑ´Ù. === TFTP ¼³Á¤ === /etc/xinetd.d/tftp ¿¡¼­ diable=no ·Î ¹Ù²Û´Ù. {{{ # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } }}} ¿©±â¼­ diable=no ´Â tftp ¼­¹ö¸¦ »ç¿ëÇÑ´Ù´Â Àǹ̰í, server_args = -s /tftpboot tftpÀÇ root °¡ /tftpboot ¶ó´Â Àǹ̴Ù. ´Ù ÇßÀ¸¸é /etc/init.d/xinetd restart ÇÏ¿© xinetd ¸¦ ´Ù½Ã ½ÃÀÛÇÑ´Ù. === NFS ¼³Á¤ === /etc/export ÆÄÀÏÀ» ÆíÁýÇÑ´Ù. {{{ /tftpboot/10.0.0.2 10.0.0.2(rw,sync,no_root_squash,no_subtree_check) /usr 10.0.0.2(rw,sync,no_root_squash,no_subtree_check) /opt 10.0.0.2(rw,sync,no_root_squash,no_subtree_check) /var 10.0.0.2(rw,sync,no_root_squash,no_subtree_check) /home 10.0.0.2(rw,sync,no_root_squash,no_subtree_check) }}} Ŭ¶óÀ̾ðÆ® (10.0.0.2) ÀÇ root °¡ /tftp/10.0.0.2 °¡ µÉ °ÍÀÌ°í, ºÎÆÿ¡ ÇÊ¿äÇÏÁö ¾ÊÀº ÆÄÀϵéÀº nfs ·Î server ¿Í °øÀ¯ÇÑ´Ù. nfs¸¦ ½ÃÀÛÇϱâ À§Çؼ­ /sbin/chkconfig portmap on, /sbin/chkconfig nfs on, /sbin/chkconfig nfslock on, /etc/init.d/portmap start, /etc/init.d/nfs start, /etc/init.d/nfslock start ÇÏ¿© µ¥¸óµéÀ» Àç½ÃÀÛÇÑ´Ù. === openmosix ÆÐÄ¡ ¹× Ä¿³Î ÄÄÆÄÀÏ === [http://openmosix.sourceforge.net/] °¡ openmosix ÀÇ °ø½Ä »çÀÌÆ®ÀÌ´Ù Ä¿³Î ÆÐÄ¡´Â ¿©±â¿¡ ÀÖ´Â HOWTO ¸¦ ÀÐ°í µû¶ó ÇϸéµÈ´Ù. ¸¸¾à Ä¿³Î ÄÄÆÄÀÏÀ» ÇÑ ¹øµµ ¾ÈÇغ¸¾Ò´Ù ÇÏ´õ¶óµµ °Ì³¾ ÇÊ¿ä´Â ¾ø´Ù. óÀ½¿¡´Â ºÎÆÃÁ¶Â÷ Á¦´ë·Î ¾ÈµÇ°ÚÁö¸¸ °è¼Ó µµÀüÇÏ¸é °á±¹ ½¬¿öÁø´Ù. º»ÀÎÀÌ Ä¿³Î ÆÐÄ¡¿Í ÄÄÆÄÀÏÀ» ÇÑ ¼ø¼­´Â ´ÙÀ½°ú °°´Ù. 1. ftp.kr.kernel.org ¿¡¼­ linux-2.4.22.tar.bz2 ¸¦ ¹Þ¾Æ¼­ /usr/src ¹Ø¿¡ ÀúÀåÇÑ´Ù. 1. tar xjvf linux-2.4.22.tar.bz2 ¸¦ Çؼ­ ¾ÐÃàÀ» Ǭ´Ù. ±×·¯¸é /usr/src/linux-2.4.22 ¶ó´Â µð·ºÅ丮¿¡ ¾ÐÃàÀÌ Ç®¸®°Ô µÈ´Ù. 1. ln -s linux-2.4.22 linux ¿Í ln -s linux-2.4.22 openmosix ¸¦ Çؼ­ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µç´Ù. 1. openmosix ȨÆäÀÌÁö¿¡¼­ openMosix-2.4.22-1.bz2 ¸¦ ´Ù¿î·Îµå ¹Þ¾Æ¼­ /usr/src ¿¡ ³õ´Â´Ù. 1. linux-2.4.22 µð·ºÅ丮·Î °¡¼­ bzcat ../openMosix-2.4.22-1.bz2 | patch -p1 À» ÇÏ¿© Ä¿³ÎÀ» ÆÐÄ¡ ÇÑ´Ù. 1. openmosix HOWTO ¿Í ¿©·¯ Ä¿³Î ¼³Á¤ °ü·Ã ¹®¼­¸¦ ÀÐ°í ½ÃÇàÂø¿À¸¦ ¹Ýº¹ÇÏ¿© Ä¿³ÎÀ» ÄÄÆÄÀÏÇÑ´Ù. (make mrproper; make menuconfig; make dep; make clean; make bzImage; make modules; make modules_install; make install) À̶§ ÁÖÀÇÇÒ °ÍÀº nfs °ü·Ã ¿É¼Ç Áß¿¡¼­ kernel ·¹º§ÀÇ ¼­¹ö¿¡ °üÇÑ Ç׸ñÀÌ Àִµ¥ ÀÌ°ÍÀ» ¹Ýµå½Ã on ÇؾߵȴÙ. redhat Àº ÀÌ°ÍÀ» ÀÌ¿ëÇÑ´Ù. ÇÑ°¡Áö, Ä¿³Î ¼³Á¤ÇÒ ¶§ Diskless Ŭ·¯½ºÅ͸¦ ±¸ÃàÇÏ´Â °ÍÀ̹ǷΠMFS ´Â ÄÓ ÇÊ¿ä°¡ ¾ø´Ù. 1. ºÎÆÃÀÌ ½ÇÆÐÇϸé lilo ¸Þ´º·Î µé¾î¿Í¼­ ÀÌÀü Ä¿³Î·Î ºÎÆÃÇÏ°í, ¿É¼Ç »õ·Î ¼³Á¤ÇÏ°í ÄÄÆÄÀÏÇÑ´Ù. 1. Ä¿³Î ÄÄÆÄÀÏÀÌ Á¦´ë·Î µÇ¾î¼­ ºÎÆÃÀÌ Àß µÇ¸é, openmosix-tools ¸¦ ¼³Ä¡ÇÑ´Ù. README ¸¦ º¸¸é redhat ÀÇ °æ¿ì´Â ¾î¶»°Ô Ç϶ó´Â ¸»ÀÌ ÀÖ´Ù. ±×´ë·Î ÄÄÆÄÀÏÇؼ­ ¼³Ä¡ÇÏ¸é µÈ´Ù. === openmosix ¼³Á¤ === openmosix ÀÇ ±â´ÉÀ» ¾²±â À§Çؼ­´Â /etc/openmosix.map À̶ó´Â ¼³Á¤ÆÄÀÏÀÌ ÇÊ¿äÇÏ´Ù. {{{ 1 xxx.xxx.xxx.xxx 1 1 10.0.0.1 alias 2 10.0.0.2 1 }}} ÀÌ ³»¿ëÀº °°Àº ÄÄÇ»ÅÍÀÎ xxx.xxx.xxx.xxx/10.0.0.1 °ú 10.0.0.2 ·Î ±¸¼ºµÈ Ŭ·¯½ºÅͻ󿡼­ jobÀÌ migration µÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÚ¼¼ÇÑ ¹®¹ýÀº HOWTO ¸¦ Àо½Ã¶ó. ÇÑ °¡Áö ÁÖÀÇ ÇÒ °ÍÀº xxx.xxx.xxx.xxx ¿Í 10.0.0.1 Àº °°Àº ÄÄÇ»ÅÍ ÀÌÁö¸¸ µÑ ´Ù ¾È ³ÖÀ¸¸é ¿¡·¯°¡ ³­´Ù´Â °ÍÀÌ´Ù. ºÎÆà µÉ ¶§ ÀÚµ¿À¸·Î openmosix ¸¦ ½ÃÀÛÇϱâ À§Çؼ­´Â /sbin/chkconfig --add openmosix; /sbin/chkconfig openmosix on À» Çؼ­ ºÎÆà µÉ ¶§ ½ÃÀ۵Ǵ ¼­ºñ½º¿¡ Æ÷ÇÔ½Ãų¼ö ÀÖ´Ù. HOWTO ¿Í openmosix-tools ¿¡ ÀÖ´Â README ³¡ºÎºÐÀ» ¹Ýµå½Ã Àоî¾ß ÇÑ´Ù. ¸î°¡Áö ¼öÁ¤ÇÒ °ÍÀÌ ´õ ÀÖ´Ù. (/etc/inittab, /etc/rc.d/init.d/sshd) == Ŭ¶óÀ̾ðÆ®¸¦ À§ÇÑ ¼³Ä¡ == Ŭ¶óÀ̾ðÆ®¸¦ ¼³Ä¡ÇÒ Â÷·ÊÀÌ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ¾µ µð½ºÅ© °ø°£Àº ¼­¹öÀÇ /tftpboot/10.0.0.2/ ¾Æ·¡ÀÇ µð·ºÅ丮µéÀÌ´Ù. === pxelinux ¼³Ä¡ === ¿ì¼±, ³×Æ®¿öÅ© ºÎÆÃÀÌ µÇµµ·Ï pxelinux ¸¦ ¼³Ä¡ÇØ¾ß µÈ´Ù. ÀÛ¾÷Àº °£´ÜÇÏ´Ù. ÆÄÀÏÇϳª º¹»çÇÏ°í µð·ºÅ丮 Çϳª ¸¸µé°í ÅؽºÆ® ÆÄÀÏ Çϳª ¸¸µé¸é ³¡ÀÌ´Ù. ¿ì¼± syslinux ȨÆäÀÌÁö http://syslinux.zytor.com/ ¿¡ °¡¼­ syslinux ÆÐÅ°Áö¸¦ ³»·Á¹Þ´Â´Ù. ¾ÐÃàÀ» Ç®¾îº¸¸é pxelinux.0 ¶ó´Â ÆÄÀÏÀÌ Çϳª°¡ Àִµ¥ ½ÇÁ¦·Î ¾µ ÆÄÀÏÀº ÀÌ°Í Çϳª »ÓÀÌ´Ù. pxelinux.0 ¸¦ /tftpboot ¿¡ º¹»çÇÑ´Ù. ±×¸®°í, pxelinux.cfg ¶ó´Â µð·ºÅ丮¸¦ /tftpboot ¾Æ·¡¿¡ ¸¸µç´Ù. /tftpboot/pxelinux.cfg ¾Æ·¡¿¡ default ¶ó´Â ÆÄÀÏÀ» vi ·Î ¸¸µé°í ´ÙÀ½ ³»¿ëÀ» ³Ö´Â´Ù. {{{ label linux kernel vmlinuz-2.4.22-openmosix-1-clients append root=/dev/nfs ip=dhcp init=/sbin/init }}} kernel ´ÙÀ½¿¡ ¿À´Â °ÍÀº Ŭ¶óÀ̾ðÆ®·Î º¸³¾ Ä¿³Î À̸§ÀÌ´Ù. ´Ù¸¥ °Ç °Çµå¸®Áö ¸»°í, kernel Á¤ÇÏ°í ½ÍÀºµ¥·Î ¹Ù²Û´Ù. === Ŭ¶óÀ̾ðÆ® Ä¿³Î ¼³Ä¡ === Ŭ¶óÀ̾ðÆ®¿ë Ä¿³ÎÀ» µû·Î ÄÄÆÄÀÏ ÇØ¾ß ÇÑ´Ù. openmosix ÆÐÄ¡µÈ Ä¿³ÎÀ» Ŭ¶óÀ̾ðÆ®¿¡ ¸Â°Ô ¹Ù²Ù°í, ¾µµ¥¾ø´Â °ÍµéÀº ´Ù »«´Ù. ²À µé¾î°¡¾ßµÉ ¿É¼ÇÀº IP:kernel level autoconfiguration -> dhcp,bootp ¿Í NFS ¿¡ °ü·ÃµÇ´Â ³»¿ëµéÀÌ´Ù. ƯÈ÷, root file system on NFS ´Â ¹Ýµå½Ã üũÇÑ´Ù. ¸ðµç Ç׸ñÀº ¸ðµâ·Î ¼³Á¤Çؼ­´Â ¾ÈµÈ´Ù. ¼­¹ö Ä¿³ÎÀ» ÄÄÆÄÀÏ ÇÒ ¶§¿Í °°ÀÌ Çϴµ¥ make bzImage ±îÁö¸¸ ÇÑ´Ù. ±×·¯¸é, ÄÄÆÄÀÏµÈ Ä¿³ÎÀÌ arch/i386/boot ¹Ø¿¡ bzImage ¶ó´Â À̸§À¸·Î ÀÖ´Ù. À̸§À» ÀûÀýÈ÷ ¹Ù²Ù¾î¼­ /tftpboot ·Î º¹»çÇÑ´Ù. ÀÌ À̸§Àº ´ç¿¬È÷ pxelinux ¼³Á¤ÇÒ ¶§ÀÇ Ä¿³Î À̸§°ú °°¾Æ¾ß ÇÑ´Ù. ±×¸®°í ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù. {{{ mknod /dev/nfs c 0 255 /usr/sbin/rdev (kerne-name) /dev/nfs }}} ¹«½¼ ¶æÀÎÁö´Â ¸ð¸£°ÚÀ¸³ª ÇØ ÁÖ¾î¾ß ÇÑ´Ù. === Ŭ¶óÀ̾ðÆ® ÆÄÀϽýºÅÛ ¼³Ä¡ === Ŭ¶óÀ̾ðÆ® ÆÄÀϽýºÅÛÀ» ¸¸µå´Â °ÍÀº ´Ü¼øÈ÷ µð·ºÅ丮 ¸¸µé°í ÆÄÀÏÀ» º¹»çÇÏ´Â ÀÛ¾÷µéÀÌ´Ù. ¸ÕÀú /tftpboot ¹Ø¿¡ 10.0.0.2 µð·ºÅ丮¸¦ ¸¸µç´Ù. ÇÏÇÊÀ̸é ip ÁÖ¼ÒÀÎ ÀÌÀ¯´Â dhcp ¼³Á¤ÇÒ ¶§ ±×·¸°Ô Ç߱⠶§¹®ÀÌ´Ù. /tftpboot/10.0.0.2 ¹Ø¿¡ cp -a /bin /boot /dev /etc /lib /root /sbin /tftpboot/10.0.0.2/ ·Î Çؼ­ ÁÖ¿ä µð·ºÅ丮¸¦ º¹»çÇÑ´Ù. -a ¿É¼ÇÀº Æ۹̼ÇÀ» À¯ÁöÇϸ鼭 º¹»çÇ϶ó´Â °ÍÀÌ´Ù. ±×¸®°í /tftpboot/10.0.0.2 ¹Ø¿¡ root, usr, home, opt, mnt, proc, tmp µð·ºÅ丮¸¦ ¸¸µé¾î ÁØ´Ù. usr ¹Ø¿¡µµ ¹Ýµå½Ã º¹»çÇØ¾ß ÇÒ ÆÄÀϵéÀÌ Àִµ¥, /usr/sbin, /usr/bin /usr/lib ¸¦ -a ¿É¼ÇÀ» Á־ º¹»çÇÑ´Ù. ÀÌ·± ÆÄÀϵéÀ» º¹»çÇÏ´Â ÀÌÀ¯´Â /usr °°Àº µð·ºÅ丮µéÀ» nfs ·Î ¸¶¿îÆ® Çϱâ Àü¿¡ ÇÊ¿äÇÑ ÆÄÀϵéÀ̱⠶§¹®ÀÌ´Ù. var µð·ºÅ丮µµ ÇÊ¿äÇѵ¥ ´Ù ÇÊ¿äÇÑ °ÍÀÌ ¾Æ´Ï¶ó rpm µ¥ÀÌÅͺ£À̽º¸¸ ÀÖÀ¸¸é µÇ¹Ç·Î /var ¿Í ¶È°°ÀÌ µð·ºÅ丮¸¸ ¸¸µé°í /var/lib/rpm/* ¸¸ -a ¿É¼ÇÀ¸·Î º¹»çÇؿ´Ù. === ³×Æ®¿÷ ¼³Á¤ === /tftpboot/10.0.0.2/etc/sysconfig/network-scripts/ifcfg-eth0 {{{ DEVICE=eth0 BOOTPROTO=static IPADDR=10.0.0.2 NETMASK=255.255.255.0 NETWORK=10.0.0.0 ONBOOT=yes }}} /tftpboot/10.0.0.2/etc/sysconfig/network-scripts/ifcfg-eth1 {{{ DEVICE=eth1 ONBOOT=yes BOOTPROTO=none IPADDR=10.0.1.2 BROADCAST=10.0.1.255 NETMASK=2555.255.255.0 NETWORK=10.0.1.0 USERCTL=false }}} /tftpboot/10.0.0.2/etc/sysconfig/network {{{ NETWORKING=yes HOSTNAME=node1.name.x.x.x DOMAINNAME=name.x.x.x GATEWAY=10.0.0.1 NISDOMAIN=nisdomain.org }}} /tftpboot/10.0.0.2/etc/hosts {{{ # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost xxx.xxx.xxx.xxx name.x.x.x 10.0.0.1 gateway.name.x.x.x 10.0.0.2 node1.name.x.x.x node1 10.0.1.1 client0.name.x.x.x client0 10.0.1.2 client1.name.x.x.x client1 }}} === ÇÊ¿äÇÑ ¼­ºñ½º ¼³Á¤ === Ŭ¶óÀ̾ðÆ®´Â ¿ÀÁ÷ °è»êÀ» À§ÇØ ¾²¿©Áö¹Ç·Î Àâ´ÙÇÑ µ¥¸óµéÀÌ ÇÊ¿ä¾ø´Ù. ¿ì¼± ¸ðµç ¼­ºñ½º¸¦ Á¦°ÅÇÑ´Ù. ¸ÕÀú root µð·ºÅ丮¸¦ /usr/sbin/chroot /tftpboot/10.0.0.2 Çؼ­ /tftpboot/10.0.0.2 ·Î ¹Ù²Û´Ù. /etc/init.d ¿¡ ÀÖ´Â ¼­ºñ½º À̸§À» single, killall, functions, microdoce_ctl, kudzu, network, portmap, nfslock, netfs, sshd, crond ¸¦ Á¦¿ÜÇÑ ¸ðµç ¼­ºñ½º¸¦ /sbin/chkconfig --del (service_name) ·Î ¸ðµÎ Á¦°ÅÇÑ´Ù. ±×¸®°í exit ·Î ¿ø·¡ root ¸¦ ¿ø·¡´ë·Î ¹Ù²Û´Ù. === NFS Ŭ¶óÀ̾ðÆ® ¼³Á¤ === /tftpboot/10.0.0.2/etc/fstab ÀÇ ³»¿ëÀ» ´ÙÀ½°ú °°ÀÌ Çؼ­ ÁÖ¿ä µð·ºÅ丮¸¦ nfs ¸¦ ÅëÇØ ¸¶¿îÆ®Çϵµ·Ï ÇÑ´Ù. {{{ 10.0.0.1:/tftpboot/10.0.0.2 / nfs rw,defaults 0 0 10.0.0.1:/usr /usr nfs rw,defaults 0 0 10.0.0.1:/home /home nfs rw,defaults 0 0 10.0.0.1:/opt /opt nfs rw,defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 }}} === ±âŸ ÆÄÀÏ ¼³Á¤ === /tftpboot/10.0.0.2/etc/inittab ¿¡¼­ id:5:initdefault: ¸¦ id:3:initdefault: ·Î ¹Ù²Ù¾î¼­ text ¸ðµå·Î ºÎÆÃÇϵµ·Ï ÇÑ´Ù. (cf. 5 ´Â X À©µµ¿ì·Î ½ÃÀÛµÊ. Ãß°¡Àû ¼­ºñ½º ¼³Á¤ ÇÊ¿ä.) == References == 1. ¸®´ª½º Ŭ·¯½ºÅÍ·Î ¸¸µå´Â ½´ÆÛÄÄÇ»ÅÍ, ÀÌÁ¤ÈÆ, ¿À¿µÀº, ±èÁ¤¼® °øÀú, ¿µÁø´åÄÄ. 2. [http://www.uni-essen.de/~bt0756/publications/2003-cluster/cluster1.html Building a diskless Linux Cluster for high performance computations from a standard Linux distribution] 3. [http://www.tldp.org/HOWTO/Diskless-root-NFS-other-HOWTO.html Root Diskless-root-NFS-other-HOWTO] 4. [http://drbl.sourceforge.net Diskless Remote Boot in Linux for Redhat9] 5. [http://www.tldp.org/HOWTO/NIS-HOWTO.html NIS-HOWTO]