Sun Grid Engine (SGE) หรือชื่อใหม่ Oracle Grid Engine เป็นโปรแกรมที่ใช้ควบคุม จัดการ การกระจายงาน (job) ไปรันตามเครื่องต่างๆ (distributed resource management)
ในระบบ Sun Grid Engine ประกอบด้วยเครื่องที่ทำหน้าที่ควบคุมการส่ง job ที่เรียกว่า “sge qmaster” อย่างน้อยหนึ่งเครื่อง
ส่วนเครื่องที่ทำหน้าที่รัน job เรียกว่า “sge execution host” หรือ “sge execd” มีหลายๆ เครื่อง ช่วยกันรันงานที่ได้รับมาจาก “qmaster”
เวอร์ชั่น open source ที่สามารถดาวน์โหลดมาใช้งานได้อย่างถูกต้องล่าสุดคือ 6.2u5 ส่วนเวอร์ชั่นที่ใหม่กว่านี้ทาง Oracle ให้ทดลองใช้ได้ 90 วัน และขายเป็น commercial
ใช้ google.com ค้นหา “Sun Grid Engine 6.2 Update 5 download” เพื่อดาวน์โหลดไฟล์รูปแบบ rpm สำหรับติดตั้งบน Linux x64 จาก Download Center
ข้อมูลไฟล์ที่เลือกดาวน์โหลดในหน้า Download Sun Grid Engine 6.2 Update 5 for Linux, English
- File Description: Sun Grid Engine 6.2 Update 5, Linux x64 (required), rpm format
- File Name: sge62u5_linux24-x64_rpm.zip
- Size: 28.16 MB
ระบบทดสอบ
ในที่นี้ใช้ CentOS 5.5 (x64) โดยลง package group ตามนี้
- Base
- Development Tools
- Editors
- GNOME Desktop Environment
- X Window System
ติดตั้งไฟล์ rpm
ตัวอย่างไฟล์ที่ดาวน์โหลด
[root@cent55-sge sge]# ls -l total 28844 -rw-r--r-- 1 root root 29533073 Jan 8 12:36 sge62u5_linux24-x64_rpm.zip
แตกไฟล์ด้วยคำสั่ง unzip
[root@cent55-sge sge]# unzip sge62u5_linux24-x64_rpm.zip Archive: sge62u5_linux24-x64_rpm.zip inflating: sge6_2u5/sun-sge-bin-linux24-x64-6.2-5.x86_64.rpm inflating: sge6_2u5/sun-sge-common-6.2-5.noarch.rpm
ไฟล์ที่แตกได้จะมีสองไฟล์
[root@cent55-sge sge]# cd sge6_2u5/
[root@cent55-sge sge6_2u5]# ls -l total 29048 -rw-r--r-- 1 root root 25583219 Dec 16 2009 sun-sge-bin-linux24-x64-6.2-5.x86_64.rpm -rw-r--r-- 1 root root 4161238 Dec 16 2009 sun-sge-common-6.2-5.noarch.rpm
ทุกเครื่องไม่ว่าจะเป็น qmaster host หรือ execution host จะต้องติดตั้งไฟล์ rpm ทั้งสองนี้
ติดตั้งไฟล์ “sun-sge-common” ก่อน
[root@cent55-sge sge6_2u5]# rpm -ivh sun-sge-common-6.2-5.noarch.rpm Preparing... ########################################### [100%] 1:sun-sge-common ########################################### [100%]
ติดตั้งไฟล์ “sun-sge-bin-linux24-x64”
[root@cent55-sge sge6_2u5]# rpm -ivh sun-sge-bin-linux24-x64-6.2-5.x86_64.rpm
error: Failed dependencies:
libXm.so.3()(64bit) is needed by sun-sge-bin-linux24-x64-6.2-5.x86_64
libXp.so.6()(64bit) is needed by sun-sge-bin-linux24-x64-6.2-5.x86_64
หากเจอ “error” แบบนี้ ต้องติดตั้ง library ที่ฟ้องขึ้นมาก่อน ในที่นี้ทั้งสอง library สามารถติดตั้งไฟล์ rpm จากแผ่นติดตั้ง CentOS 5.5 ได้
[root@cent55-sge sge6_2u5]# mount /dev/cdrom /media mount: block device /dev/cdrom is write-protected, mounting read-only
[root@cent55-sge sge6_2u5]# cd /media/CentOS/
สำหรับ “libXm.so.3” ต้องติดตั้งไฟล์ rpm ชื่อ “openmotif22-2.2.3-18.x86_64.rpm”
[root@cent55-sge CentOS]# rpm -ivh openmotif22-2.2.3-18.x86_64.rpm Preparing... ########################################### [100%] 1:openmotif22 ########################################### [100%]
หมายเหตุ ในแผ่นดีวีดีติดตั้ง CentOS 5.5 (x64) จะมีไฟล์ rpm ติดตั้ง openmotif อยู่สองเวอร์ชั่น เนื่องจาก sge ใช้ libXm.so.3 ซึ่งมีอยู่ในไฟล์ “openmotif22-2.2.3” เลยต้องติดตั้งไฟล์เวอร์ชั่นนี้ ส่วน “openmotif-2.3.1” เวอร์ชั่นของ libXm จะเป็น “libXm.so.4” ไม่สามารถใช้กับ sge ได้
ใช้คำสั่ง rpm ดูไฟล์ที่จะติดตั้ง เพื่อเปรียบเทียบเวอร์ชั่นของ “libXm”
[root@cent55-sge CentOS]# rpm -qilp openmotif22-2.2.3-18.x86_64.rpm | grep libXm /usr/lib64/libXm.so.3 /usr/lib64/libXm.so.3.0.2
[root@cent55-sge CentOS]# rpm -qilp openmotif-2.3.1-2.el5_4.1.x86_64.rpm | grep libXm /usr/lib64/libXm.so.4 /usr/lib64/libXm.so.4.0.1
สำหรับ “libXp” ต้องติดตั้งไฟล์ rpm ชื่อ “libXp-1.0.0-8.1.el5.x86_64.rpm”
[root@cent55-sge CentOS]# rpm -ivh libXp-1.0.0-8.1.el5.x86_64.rpm Preparing... ########################################### [100%] 1:libXp ########################################### [100%]
ทดลองติดตั้ง sge อีกครั้ง
[root@cent55-sge CentOS]# cd - /root/sge/sge6_2u5
[root@cent55-sge sge6_2u5]# rpm -ivh sun-sge-bin-linux24-x64-6.2-5.x86_64.rpm Preparing... ########################################### [100%] 1:sun-sge-bin-linux24-x64########################################### [100%]
คอนฟิกเบื้องต้นสำหรับ sge
สร้าง user และ group สำหรับรัน sge
[root@cent55-sge sge6_2u5]# groupadd sgeadmin [root@cent55-sge sge6_2u5]# useradd -g sgeadmin sgeadmin [root@cent55-sge sge6_2u5]# id sgeadmin uid=502(sgeadmin) gid=500(sgeadmin) groups=500(sgeadmin)
ตั้งค่า PATH การติดตั้ง sge
[root@cent55-sge sge6_2u5]# export SGE_ROOT=/gridware/sge [root@cent55-sge sge6_2u5]# echo $SGE_ROOT
เปลี่ยน user group ของ PATH ที่จะติดตั้งเป็น sgeadmin
[root@cent55-sge sge]# chown sgeadmin.sgeadmin /gridware/sge
ต้องแก้ไขไฟล์ /etc/hosts เพื่อ map ชื่อ hostname ของเครื่องที่ทำหน้าที่เป็น qmaster host จาก 127.0.0.1 เป็น IP Address ของพอร์ต LAN
[root@cent55-sge sge6_2u5]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 cent55-sge.spalinux.com cent55-sge localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
สมมติว่าพอร์ต LAN ของเครื่องนี้ IP คือ 192.168.55.10 ต้องแก้ไขไฟล์นี้เป็นดังนี้
เพื่อความสะดวก แนะนำให้เพิ่มชื่อเครื่องและ IP address ที่จะทำหน้าที่เป็น execution host ด้วยเลย
[root@cent55-sge sge6_2u5]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 192.168.55.10 cent55-sge.spalinux.com cent55-sge
192.168.55.11 cent55-node1.spalinux.com cent55-node1 192.168.55.12 cent55-node2.spalinux.com cent55-node2
เพิ่มชื่อและหมายเลขพอร์ตสำหรับ sge ในไฟล์ /etc/services
[root@cent55-sge sge6_2u5]# cat /etc/services
...
# Local services
sge_qmaster 10500/tcp
sge_execd 10501/tcp