Trong bài báo cáo này, em sẽ nghiên cứu về cách cài đặt Globus Toolkit 4.2.1 trên hệ điều hành CentOS 5.5 để xây dựng một hệ thống lưới tính toán với nhiều máytính và cách chạy một ứng d
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Phan Hữu Phước
TIỂU LUẬN
ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY
CÀI ĐẶT GLOBUS TOOLKIT TRÊN CENTOS
GIẢNG VIÊN: PGS.TS Nguyễn Phi Khứ
TP HỒ CHÍ MINH – 6/2014
Trang 3TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Phan Hữu Phước
TIỂU LUẬN
ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY
CÀI ĐẶT GLOBUS TOOLKIT TRÊN CENTOS
GIẢNG VIÊN: PGS.TS Nguyễn Phi Khứ
TP HỒ CHÍ MINH – 6/2014
Trang 61 Giới thiệu
Ngày nay, tính toán lưới (Grid Computing) đang là công nghệ nổi bật trên khắp thếgiới và đang được nhiều tổ chức lớn áp dụng Grid Computing hiện đang là nềntảng công nghệ mới với nhiều chức năng tiên tiến cung cấp nền tảng công nghệ,năng lực tính toán cho các tổ chức và doanh nghiệp với các yêu cầu cụ thể GridComputing đáp ứng tốt các nhu cầu về bảo mật, nhu cầu cung cấp các chức năng cơbản và khả năng quản lý các tiến trình trong lưới một cách hiệu quả
Các chương trình chạy trên môi trường mạng lưới có thời gian xử lý công việc ngắnhơn và đạt hiệu suất nhanh hơn vì có khả năng truy cập nhanh đến các nguồn tàinguyên phân tán trong môi trường lưới
Các đặt tính nổi bật của Grid Computing bao gồm:
• Khai thác tài nguyên để xử lý chương trình
• Kết hợp nhiều tài nguyên tạo thành tổ chức ảo
• Khả năng xử lý song song đồng bộ và không đồng bộ
• Khả năng quản lý người dùng, quản lý tài nguyên và tiến trình
• Khả năng bảo mật cao với chứng thực, kiểm soát truy cập, mã hóa
Trong bài báo cáo này, em sẽ nghiên cứu về cách cài đặt Globus Toolkit 4.2.1 trên
hệ điều hành CentOS 5.5 để xây dựng một hệ thống lưới tính toán với nhiều máytính và cách chạy một ứng dụng Grid dựa trên hệ quản trị tài nguyên GRAM đượccài đặt trong Globus Toolkit
Trang 7Server_CA
192.168.1.10/24
HostAsub1_HostA192.168.1.11/24
HostBsub2_HostB192.168.1.12/24
HostCsub3_HostC192.168.1.13/24
Domain Name:
brtvc.edu.vn
Network Address: 192.168.1.0/24Default Gageway: 192.168.1.1Preferred DNS: 8.8.8.8
2 Cài đặt Grid
2.1 Mô hình mạng lưới
Em sẽ thực hiện mô hình với 4 máy bao gồm: một CA và ba Host
• CA: là node chính dùng để chứng thực quyền hạn cho Host và cho các User
• Host: là các node phụ được chứng thực bởi CA và chịu trách nhiệm quản lýcác User của Host đó
Hình 1.1 Mô hình mạng Bảng 1.2: Các máy trong mạng lưới
Tên Máy Tên Host
Hệ điều hành Gói Globus cài đặt
Server_CA server.brtvc.edu.vn CentOS 5.5 Gói GT 4.2.1 All
Sourcesub1_HostA sup1.brtvc.edu.vn CentOS 5.5 Gói GT 4.2.1 All
Sourcesub2_HostB sup2.brtvc.edu.vn CentOS 5.5 Gói GT 4.2.1 All
Sourcesub3_HostC sup3.brtvc.edu.vn CentOS 5.5 Gói GT 4.2.1 All
Source
Bảng 1.3: Nhiệm vụ và người dùng của từng máy
Trang 8Cài đặt Grid
Server_CA Node chính dùng để chứng thực globus, huuphuoc
/usr/local/globus-Java SDK 1.7.0 jdk-7u3-linux-i586.rpm /usr/local/javaApache Ant 1.8.3 apache-ant-1.8.3-bin.tar.gz /usr/local/ant
• Gõ lệnh # setup, sau đó chọn “Network Configuration”.
• Chọn “Edit DNS Configuration” để cấu hình DNS
o Đặt Hostname theo dạng Domain name như sau: server.brtvc.edu.vn,sub1.brtvc.edu.vn, sub2.brtvc.edu.vn, sub3.brtvc.edu.vn
o Cấu hình Primary DNS là 8.8.8.8 và Secondary DNS là 8.8.4.4
o Sau khi điền vào các thông số cấu hình, ta thực hiện Save cấu hình và
khởi động lại dịch vụ mạng bằng lệnh: # service network restart
Cấu hình Card mạng eth0:
Gõ lệnh sau để chỉnh sửa các thông số trong file ifcfg-eth0:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
Sau khi vào file trên, ta chỉnh sửa lại các thông số như sau:
DEVICE=eth0
BOOTPROTO=static
Trang 9• Sau khi cấu hình xong ta nhấn ESC và Save lại bằng lệnh: wq
• Khởi động lại dịch vụ mạng # service network restart
Kiểm tra kết nối Internet và phân giải DNS bằng lệnh ping 8.8.8.8 và pinggoole.com.vn
Disable Firewall trong CentOS: Gõ lệnh # setup, chọn Firewall Configuration,
sau đó đánh dấu chọn Disable, chọn Save và thoát.
Chỉnh sửa lại nội dung File hosts trong thư mục /etc để các máy có thể phân giải tên
2.3 Cài đặt Globus Toolkit 4.2.1
Lưu ý: các bước cài đặt Globus Toolkit 4.2.1 dưới đây đều được thực hiện tương tựtrên tất cả các máy
2.3.1 Cài đặt JDK
Tải file cài đặt JDK “jdk-7u3-linux-i586.rpm” với version 1.7.0 tại liên kết:
1501626.html
Trang 10http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-Cài đặt Grid
Sau khi tải về, ta sử dùng chương trình WinSCP kết nối đến máy CentOS thông qua
địa chỉ IP và tài khoản root để copy file “jdk-7u3-linux-i586.rpm” vào thư mục /root.
Cài đặt gói trên bằng lệnh:
# rpm -ivh jdk-7u3-linux-i586.rpm
Sau đó dùng lệnh sau để kiểm tra việc cài đặt JDK thành công hay chưa:
# java –version
java version “1.7.0_03″
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)
2.3.2 Cài đặt Apache Ant
Tải file nén của Apache “apache-ant-1.8.3-bin.tar.gz” tại liên kết:
http://mirror-fpt-telecom.fpt.net/apache/ant/binaries/apache-ant-1.8.3-bin.tar.gz
Sau khi tải về, ta dùng WinSCP để copy file “apache-ant-1.8.3-bin.tar.gz” vào mục /root.
Giải nén vào thư mục /usr/local/ bằng lệnh:
# tar -zxvf apache-ant-1.8.3-bin.tar.gz -C /usr/local/
Vào thư mục /usr/local/apache-ant-1.8.3:
# cd /usr/local/apache-ant-1.8.3
Thực hiện lệnh sau để cấu hình apache ant:
# ant -f fetch.xml -Ddest=system
Kiểm tra cài đặt thành công bằng lệnh:
# ant -version
Apache Ant(TM) version 1.8.3 compiled on February 26 2012
2.3.3 Cấu hình biến môi trường
Cấu hình các biến môi trường để dễ dàng truy cập trong suốt quá trình cài đặt và sửdụng Globus Toolkit
Ở đây, chúng ta sẽ cấu hình các biến môi trường cho Java, Apache Ant và GlobusLocation bằng cách gõ lần lượt các dòng lệnh sau:
Trang 11Để cài đặt bộ biên dịch ngôn ngữ GCC, ta dùng lệnh:
Để cập nhật bộ chương trình tar, ta dùng lệnh sau:
# yum install tar
2.3.6 Cài đặt sed
Sed (Stream Editor), dùng để thao tác trực tiếp với văn bản như thay thế, xóa, in racác đoạn text
Để cài đặt sed, ta dùng lệnh sau:
# yum install sed
Trang 12Cài đặt Grid
2.3.7 Cài đặt zlib
Zlib là một công cụ nén dữ liệu với kích thước lớn và tốc độ xử lí nhanh, hỗ trợ cáctính năng trong việc đọc hoặc thực thi các file nén
Để cài đặt zlib, ta dùng lệnh sau:
# yum install zlib
2.3.8 Cài đặt GNU make
Trong trường hợp ta viết một chương trình rất lớn được cấu thành bởi từ nhiều file,việc biên dịch sẽ rất phức tạp vì phải viết các dòng lệnh gcc rất là dài Để khắc phụctình trạng này, công cụ GNU make đã được đưa ra GNU make được giải quyếtbằng cách chứa tất cả các dòng lệnh phức tạp đó trong một file gọi là makefile Nócũng làm tối ưu hóa tiến trình dịch bằng cách phát hiện ra những file nào có thayđổi thì nó mới dịch lại, còn file nào không bị thay đổi thì nó sẽ không làm gì cả, vìvậy thời gian dịch sẽ được rút ngắn
Để cài đặt GNU make, ta dùng lệnh sau:
# yum install make
2.3.9 Cài đặt Sudo
Sudo là viết tắt của từ “su do” có nghĩa là: “do something as the supervisor” Sudo
là một thay thế nâng cao của lệnh su trong Unix
Sudo cho phép cung cấp đặc quyền truy cập để vào một số lệnh và thực hiện cáclệnh đó như một người dùng đặc quyền
Sudo cho phép bạn hạn chế những người dùng có thể sử dụng nó bằng cách chỉnhsửa file sudoers
Để cài đặt sudo, ta dùng lệnh sau:
# yum install sudo
Trang 13Để cài đặt và cập nhật OpenSSL, ta sử dụng lệnh sau:
# yum install openssl-devel
2.3.11 Cài đặt Perl
Perl viết tắt của Practical-Extraction and Report- Language là một ngôn ngữ lậptrình do Larry Wall sáng tác với mục đích chung quy là tạo ra những bản báo cáomột cách nhanh chóng và dễ dàng Do có nhiều toán tử cũng như hàm để hỗ trợriêng cho xử lý text nên Perl khác biệt với các ngôn ngữ khác là có tính chất xử lýtext rất mạnh, có thể xử lý dễ dàng những tác vụ giống như C hoặc UNIX shellthường làm trong việc viết một Script nhưng có thể ngắn gọn và đơn giản hơn.Không giống như các trình biên dịch C hay C++, Perl là một trình thông dịch
Để cài đặt gói ngôn ngữ Perl, ta sử dụng các lệnh sau:
# yum install perl
# yum install perl-Archive-Tar
# yum install perl-XML-Parser
2.3.12 Cài đặt bộ thư viện Libtool
Libtool là một bộ thư viện dùng để hỗ trợ các thư viện lập trình cho ngôn ngữ lậptrình C trong hệ thống tính toán lưới
Để cài đặt libtool, ta sử dụng lệnh sau:
# yum install libtool-ltdl-devel
2.3.13 Cài đặt gói Globus Toolkit
Để cài đặt Globus Toolkit 4.2.1, ta tải gói “gt4.2.1-all-source-installer.tar.gz” tại
link:
installer.tar.gz
http://www.globus.org/toolkit/survey/index.php?download=gt4.2.1-all-source-Sau đó, dùng WinSCP để copy file “gt4.2.1-all-source-installer.tar.gz” vào thư mục /home/globus/ là thư mục của user globus.
Tạo folder globus-4.2.1 trong folder /usr/local/ để chứa Globus sau khi được build
bằng lệnh:
# mkdir /usr/local/globus-4.2.1
Trang 14Lưu ý: khi thực hiện lệnh trên nếu thấy xuất hiện các thông báo Warning, lúc này
quá trình cài đặt đã gặp lỗi, cần phải kiểm tra lại các bước cài đặt trên
Nếu không xất hiện Warning thì thực hiện tiếp các lệnh sau:
$ make
$ make install
Quá trình build và install Globus Toolkit 4.2.1 mất khoảng một giờ đến hai giờ
2.4 Cài đặt Certificate Authority
2.4.1 Cài đặt SimpleCA
Lưu ý: việc cài đặt SimpleCA chỉ thực hiện trên node chính Server_CA.
Login với root và chạy lệnh sau để cài đặt biến môi trường cho globus-user:
# $GLOBUS_LOCATION/etc/globus-user-env.sh
Login với tài khoản globus và chạy lệnh sau để tiến hành cài đặt SimpleCA:
$ $GLOBUS_LOCATION/setup/globus/setup-simple-ca
Do you want to keep this as the CA subject (y/n) [y]: y
Enter the email of the CA (this is the email where certificate requests will be sent to
be signed by the CA): wsphuoc@gmail.com
Enter the number of DAYS the CA certificate should last before it expires [default:
5 years (1825 days)]:
[nhấn Enter]
Enter PEM pass phrase: 123456789 (là password bảo vệ private key của CA)
Trang 15Ở đây, ta đặt password để bảo vệ private key của CA là 123456789.
Các file sau sẽ được tạo ra:
• Private key của CA: /home/globus/.globus/simpleCA/private/cakey.pem
• Certificate của CA: /home/globus/.globus/simpleCA/cacert.pem
• Distribution package để các Host cài đặt khi muốn đăng kí certificate từ CA:
/home/globus/.globus/simpleCA/globus_simple_ca_[ca_hash]_setup-0.20.tar.gz
Lưu ý: [ca_hash] là một chuỗi được tạo ra ngẫu nhiên khi cài SimpleCA
Login với root và chạy lệnh sau để tiến hành cài đặt gói globus_simple_ca:
#
$GLOBUS_LOCATION/setup/globus_simple_ca_[ca_hash]_setup/setup-gsi –default
setup-gsi: Configuring GSI security
Installing /etc/grid-security/certificates//grid-security.conf.CA_Hash…
Running grid-security-config…
Installing Globus CA certificate into trusted CA certificate directory…
Installing Globus CA signing policy into trusted CA certificate directory…
setup-gsi: Complete
Kết thúc quá trình cài đặt Simple CA trên máy CA
2.4.2 Cài đặt Certificate cho node phụ
Lưu ý: bước này chỉ thực hiện tại các node phụ để nhận node chính Server_CA làm
CA chứng thực cho các node phụ trong hệ thống mạng lưới
Ta copy file distribution packet globus_simple_ca_[ca_hash]_setup-0.20.tar.gz từ máy CA và bỏ vào thư mục /Home/globus của các node phụ.
Tại các node phụ, ta login với tài khoản globus, sau đó chạy lần lượt các lệnh:
$GLOBUS_LOCATION/sbin/gpt-build globus_simple_ca_[ca_hash]_setup-0.20.tar.gz gcc32
dbg
$ $GLOBUS_LOCATION/sbin/gpt-postinstall
Trang 16Cài đặt Grid
Login với root và chạy lệnh:
#
$GLOBUS_LOCATION/setup/globus_simple_ca_[ca_hash]_setup/setup-gsi -default
2.5 Cấp Certificate cho Host
Lưu ý: Bước này thực hiện tương tự ở node chính lẫn node phụ
Login với root và chạy lệnh sau:
# grid-cert-request -host hostname
Với hostname là tên của host như server.brtvc.edu.vn, sub1.brtvc.edu.vn,
Sẽ có 3 file được tạo ra sau khi thực hiện lệnh trên:
• Private key của host: /etc/grid-security/hostkey.pem
• Yêu cầu certificate của host để gửi cho CA ký xác thực:
/etc/grid-security/hostcert_request.pem
• certificate của node host: /etc/grid-security/hostcert.pem (file rỗng)
Copy file hostcert_request.pem từ file /etc/grid-securituy/ vào folder /home/globus/ trên máy CA để tiến hành ký tên xác thực.
Tại máy CA, login với tài khoản globus và chạy lệnh sau để ký vào
hostcert_request.pem của host.
$ grid-ca-sign -in hostcert_request.pem -outhostcert.pem
To sign the request please enter the password for the CA key:
(nhập vào PEM pass phrase đã đặt 123456789)
……
The new signed certificate is at:/home/globus/.globus/simpleCA//newcerts/xx.pem Sau đó, đăng nhập với root và chép đè file hostcert.pem vừa được tạo ra trong folder /home/globus/ của máy CA lên tập tin có sẵn trong thư mục /etc/grid-
security.
Việc kí xác thực cho host đã thành công Host sẽ chịu trách nhiệm quản lý cácngười dùng được tạo trên host đó
Trang 172.6 Cấp Certificate cho User
Lưu ý: Bước này thực hiện tương tự cho tất cả các User trong mạng lưới
Login với tài khoản người dùng (ví dụ như huuphuoc, sub1 ) sau đó chạy lệnh:
$ grid-cert-request
Enter your name, e.g., John Smith: HuuPhuoc
(nhập username sở hữu cert, ở đây là HuuPhuoc)
…
Enter PEM pass phrase: huuphuoc
Verifying – Enter PEM pass phrase: huuphuoc
(nhập password bảo vệ cho private key của user huuphuoc là huuphuoc)
…
Sẽ có 3 file sau được tạo ra trong folder home của sub1:
• Private key của user: /home/sub1/.globus/userkey.pem
• Yêu cầu Certificate của user để CA ký xác thực:
/home/sub1/.globus/usercert_request.pem
• Certificate của user: /home/sub1/.globus/usercert.pem (file rỗng)
Copy file usercert_request.pem trong folder /home/”tên user”/.globus vào thư mục /home/globus/ trên máy CA.
Tại máy CA, login với tài khoản globus và chạy lệnh sau để ký xác thực cho user:
$ grid-ca-sign -in usercert_request.pem -outusercert.pem
To sign the request
please enter the password for the CA key: gõ vào 123456789
The new signed certificate is at:
/home/globus/.globus/simpleCA//newcerts/02.pem
Sau đó, đăng nhập với root và chép đè file usercert.pem vừa được tạo ra trong folder /home/globus/ của máy CA lên tập tin có sẵn trong thư mục /home/”tên user”/.globus
Để kiểm tra người dùng đã được chứng thực hay chưa, đăng nhập vào tài khoảnngười dùng và gõ lệnh sau:
Trang 18Cài đặt Grid
$ grid-proxy-init -debug -verify
…
Enter GRID pass phrase for this identity: huuphuoc
(nhập vào password nhận dạng, giả sử ở đây là huuphuoc)
…
Creating proxy
Done
Proxy Verify OK
2.7 Ánh xạ người dùng Local với người dùng Grid
Lưu ý: bước này thực hiện tương tự trên tất cả các máy trong Grid
Globus Toolkit yêu cầu ánh xạ giữa người dùng được xác thực Grid với người dùngLocal
Để lấy tên người dùng được xác thực Grid, đăng nhập vào tài khoản người dùng và
Trang 19# mkdir /etc/cdrom (tạo folder chứa các file Mount)
# mount /dev/cdrom /etc/cdrom
Vào thư mục sau:
# cd /etc/cdrom/CentOS
Sau đó tiến hành cài đặt gói xinetd-2.3.14-10.el5.i386.rpm
# rpm -ivh xinetd-2.3.14-10.el5.i386.rpm
Quá trình cài đặt thành công, tiến hành khởi động dịch vụ Xinetd bằng lệnh:
# service xinetd start
Trang 20Kiểm tra lắng nghe của port 2811, dùng lệnh:
# netstat -an | grep 2811
2.8.3 Chạy thử nghiệm GridFTP
Đăng nhập vào tài khoản người dùng đã được chứng thực bởi CA Sau đó tạo proxycho người dùng bằng lệnh:
$ grid-proxy-init
Enter GRID pass phrase for this identity: huuphuoc
(nhập vào password nhận dạng, giả sử ở đây là huuphuoc)
…
Creating proxy