Giới thiệu Globus Toolkit
Globus Toolkit (GT) là một cài đặt của kiến trúc Grid bao gồm các dịch vụ và giao thức như đã mô tả trong phần II. Globus (www.globus.org) là một dự án do chính phủ Mỹ tài trợ nhằm cung cấp các thành phần và công cụ phần mềm để xây dựng Grid cũng như các ứng dụng dựa trên Grid. Tập hợp các phần mềm này được đóng gói trong bộ công cụ Globus Toolkit{TM}. Đây là gói phần mềm dựa trên kiến trúc mở (dễ dàng mở rộng và độc lập với phần cứng). Ngoài ra GT còn là 1 phần mềm nguồn mở được phát triển dựa trên nhiều dự án và công sức của rất nhiều lập trình viên trên khắp thế giới.
Globus Toolkit bao gồm các công cụ và các thư viện nhằm cài đặt các yêu cầu:
• An toàn bảo mật - cài đặt Grid Security Infrastructure (GSI) • Quản lý tài nguyên (GRAM)
• Quản lý dữ liệu (trao đổi dữ liệu - GridFTP, quản lý bản sao - RLS) • Dịch vụ thông tin (GIS)
Các nền tảng phần cứng và hệ điều hành mà GT hỗ trợ: • Apple MacOS X • Debian • Fedora Core • FreeBSD • HP/UX • IBM AIX • Red Hat
• SGI Altix (IA64 running Red Hat) • Sun Solaris
• SuSE Linux • Tru64 Unix
• Windows
Phiên bản chính thức hiện nay của Globus Toolkit là GT 5.2.4, bạn có thể tải về tại đậy: http://www.globus.org/toolkit/downloads/5.2.4/
Điểm nổi bật của phiên bản này bao gồm: GridFTP
• Thêm hỗ trợ phiên bản beta cho "chia sẻ" để sử dụng với Globus trực tuyến. • Khả năng cho khách hàng để xác thực mà không cần ủy thác thêm.
• Thêm hỗ trợ cho khách hàng để buộc sử dụng IPv6 thông qua một biến môi trường
• Cải thiện độ tin cậy, khai thác gỗ, và rò rỉ bộ nhớ cố định RPM / Debian gói bản địa cho các hệ thống sau: • CentOS 4, 5, 6; • Fedora 16, 17; • RHEL 5, 6; • Khoa học Linux 5, 6; • Debian 6, 7 (thử nghiệm); • Ubuntu 10.04, 11.10, 12.04, 12.10;
Công cụ này cũng được thử nghiệm trên các nền tảng sau đây: Solaris 11, hệ điều hành MacOS 10,8 (Mountain Lion)
Cài đặt Globus Toolkit 5.2.0 trên CentOS 6.2
Phần hướng dẫn này vẫn áp dụng tốt cho các bản 4.x.x nhưng chỉ cài được trên các bản Linux có OpenSSL phiên bản từ 1.x.x trở xuống. Chúng tôi đã thử nghiệm cài thành công GT 4.2.1 trên Fedora 10 (có OpenSSL 0.9.8g) nhưng không thể cài được GT 4.2.1 trên CentOS 6.2 (có OpenSSL 1.0.0). Các bản GT 5.x.x sau này đã làm việc được với OpenSSL 1.x.x.
Để xem phiên bản của OpenSSL mà bản Linux đang dùng, chạy lệnh: # openssl version
Các bước cài như sau:
Chỉ hỗ trợ *nix, ở đây chọn CentOS 6.2 với bản mới nhất Globus Toolkit 5.2.0
Chuẩn bị
1. Cài CentOS 6.2
Đăng nhập với root, có kết nối Internet 2. Cài JDK 7
+ Tải: http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3- download-1501626.html
(được file jdk-7u3-linux-i586.rpm) + Cài:
# rpm -ivh jdk-7u3-linux-i586.rpm Kiểm tra cài JDK thành công: # 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) 3. Cài Apache Ant
+ Tải: http://mirror-fpt-telecom.fpt.net/apache/ant/binaries/apache-ant-1.8.3- bin.tar.gz
+ Rồi giải nén vào thư mục /usr/local/
# tar -zxvf apache-ant-1.8.3-bin.tar.gz -C /usr/local/
+ Đặt biến môi trường: mở file /etc/profile và thêm vào cuối file các dòng sau: export JAVA_HOME=/usr/java/jdk1.7.0_03
export ANT_HOME=/usr/local/apache-ant-1.8.3
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin + Logout và login lại với root
+ Cài thêm các option tasks cho Ant # cd $ANT_HOME
# ant -f fetch.xml -Ddest=system + Kiểm tra cài Ant thành công # ant -version
Apache Ant(TM) version 1.8.3 compiled on February 26 2012 4. Cài gcc và g++
# yum install gcc # yum install gcc-c++ 5. Cài GNU tar
# yum install tar 6. Cài GNU sed # yum install sed 7. Cài zlib
# yum install zlib 8. Cài GNU make # yum install make 9. Cài sudo
# yum install sudo 10. Cài OpenSSL # yum install openssl # yum install openssl-devel 11. Cài Perl
# yum install perl 12. Cài các module Perl
# yum install perl-Archive-Tar # yum install perl-Compress-Zlib # yum install perl-IO-Zlib
# yum install perl-Test-Simple # yum install perl-XML-Parser 13. Cài tiếp các module cho Perl
# wget http://pkgs.repoforge.org/perl-Digest-MD5/perl-Digest-MD5-2.39- 1.el6.rf.i686.rpm # wget http://pkgs.repoforge.org/perl-File-Spec/perl-File-Spec-3.30- 1.el6.rf.i686.rpm # wget ftp://ftp.muug.mb.ca/mirror/redhat/redhat/linux/7.1/en/DMA/CPAN/RPMS/perl- PodParser-1.18-10.i386.rpm
Cài cả 3 file trên bằng lệnh
# rpm -Uvh –force perl-Digest-MD5-2.39-1.el6.rf.i686.rpm perl-File-Spec- 3.30-1.el6.rf.i686.rpm perl-PodParser-1.18-
10.i386.rpm
14. Cài thêm thư viện
# yum install libtool-ltdl-devel
Cài Globus Tookit 5.2.0
0. Tải GT 5.2.0
http://www.globus.org/ftppub/gt5/5.2/5.2.0/installers/src/gt5.2.0-all-source- installer.tar.gz
1. Tạo user globus và đặt password # useradd globus
# passwd globus
2. Tạo folder chứa chương trình sau khi được build # mkdir /usr/local/globus-5.2.0
# chown globus:globus /usr/local/globus-5.2.0 3. Chuyển sang user globus
# su – globus
4. Giải nén source và chuyển vào folder vừa được giải nén $ tar -zxvf gt5.2.0-all-source-installer.tar.gz
5. Lần lượt chạy các lệnh sau. Đảm bảo sau khi chạy mỗi lệnh đều không bị báo lỗi.
$ ./configure –prefix=/usr/local/globus-5.2.0 $ make
$ make install
Cài đặt và cấu hình SimpleCA
Chuẩn bị:
• Đặt tên cho node chính và các node phụ theo dạng FQDN, ví dụ: thang.uit.vn (chính), thanh.uit.vn (phụ)
• Đặt IP cùng subnet cho tất các các node
• Chỉnh file /etc/hosts để tất cả các node có thể liên lạc bằng domain name
Thiết lập các biến môi trường
Thực hiện trên tất cả các node các bước sau: + login với root
+ mở file /etc/profile và thêm vào cuối file 2 dòng sau: export GLOBUS_LOCATION=/usr/local/globus-5.2.0
export PATH=$PATH:$GLOBUS_LOCATION/bin: $GLOBUS_LOCATION/sbin
+ đóng file /etc/profile và chạy lệnh # . /etc/profile
sau đó chạy lệnh:
# . $GLOBUS_LOCATION/etc/globus-user-env.sh
Xây dựng CA
Cài SimpleCA trên node chính
1. Login vào node chính với account globus và chạy: $ $GLOBUS_LOCATION/setup/globus/setup-simple-ca Xuất hiện dòng lệnh:
Enter the email of the CA (this is the email where certificate requests will be sent to be signed by the CA): vn.khoanv@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: khoaCH1101016 (là password bảo vệ private key của CA)
+ Các file quan trọng được tự động tạo ra: – private key của CA:
/home/globus/.globus/simpleCA/private/cakey.pem – public certificate của CA:
/home/globus/.globus/simpleCA/cacert.pem
– distribution package mà các node phụ sẽ cần cài khi muốn nhận certificate từ CA:
/home/globus/.globus/simpleCA/globus_simple_ca_e6f93dcf_setup- 0.20.tar.gz
(Lưu ý, chuỗi e6f93dcf là giá trị hash của certificate của CA nên SẼ KHÁC VỚI MÁY CỦA BẠN).
Và copy lại phần Note đường dẫn tới script cấu hình cho GSI có dạng như sau: /usr/local/globus-4.2.1/setup/globus_simple_ca_e6f93dcf_setup/setup-gsi 2. Login với root và chạy:
# $GLOBUS_LOCATION/setup/globus_simple_ca_e6f93dcf_setup/setup-gsi -default
——output—–
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
Cấu hình tại các node phụ để nhận node chính làm CA
Thực hiện giống nhau tại các node phụ:
+ login với globus và copy distribution package từ node chính (ở đây là file globus_simple_ca_e6f93dcf_setup-0.20.tar.gz) về.
sau đó chạy lần lượt chạy 2 lệnh:
$ gpt-build globus_simple_ca_e6f93dcf_setup-0.20.tar.gz gcc32dbg $ gpt-postinstall
+ login với root và chạy:
# $GLOBUS_LOCATION/setup/globus_simple_ca_e6f93dcf_setup/setup-gsi -default
Tạo Host certificate cho từng node phụ
(vd ở đây thực hiện mẫu tại node phụ là thanh.uit.vn) + login với root là chạy:
# grid-cert-request -host thanh.uit.vn Sẽ có 3 file được tạo ra là
– private key của node phụ: /etc/grid-security/hostkey.pem – request của node phụ: /etc/grid-security/hostcert_request.pem – certificate của node phụ: /etc/grid-security/hostcert.pem (file rỗng) + copy file hostcert_request.pem vào máy CA (là node chính)
+ tại máy CA, login với globus và chạy lệnh sau để ký vào host request cert của node phụ:
$ grid-ca-sign -in hostcert_request.pem -out hostsigned.pem To sign the request please enter the password for the CA key: (nhập vào PEM pass phrase đã đặt ở bước 2.1, ở đây là thang90) ……
The new signed certificate is at: /home/globus/.globus/simpleCA//newcerts/01.pem
+ copy file cert đã được ký (hostsigned.pem) ở trên qua node phụ
+ move file hostsigned.pem vào folder /etc/grid-security và ghi đè lên file cert rỗng
(quyền user root) # mv hostsigned.pem /etc/grid-security/hostcert.pem
Tạo User certificate cho từng node phụ
(vd ở đây thực hiện mẫu tại node phụ là thanh.uit.vn) + login với root và tạo một normal user mới là thanh + login với user thanh và chạy:
$ grid-cert-request ————————
Enter your name, e.g., John Smith: Thanh Nguyen (nhập username sở hữu cert, ở đây là Thanh Nguyen) …..
Enter PEM pass phrase: thanh90
Verifying – Enter PEM pass phrase: thanh90
(nhập password bảo vệ cho private key của user thanh, ở đây là thanh90) …..
Sẽ có 3 file sau được tạo ra trong folder home của thanh ———-
/home/thanh/.globus/usercert.pem (file rỗng) /home/thanh/.globus/userkey.pem
/home/thanh/.globus/usercert_request.pem + copy file usercert_request.pem vào máy CA
+ tại máy CA, login với globus và chạy lệnh sau để ký vào user request cert của node phụ:
$ grid-ca-sign -in usercert_request.pem -out usersigned.pem To sign the request please enter the password for the CA key: (nhập vào PEM pass phrase đã đặt ở bước 2.1, ở đây là thang90) ……
The new signed certificate is at: /home/globus/.globus/simpleCA//newcerts/02.pem
+ move file usersigned.pem vào folder /home/thanh/.globus/ và ghi đè lên file cert rỗng
(quyền user thanh) $ mv usersigned.pem /home/thanh/.globus/usercert.pem + Để kiểm tra user thanh đã được chứng thực, login với user thanh và chạy: $ grid-proxy-init -debug -verify
…..
Enter GRID pass phrase for this identity: thanh90 (nhập vào password nhận dạng, ở đây là thanh90) …..
Creating proxy ….++++++++++++ ……++++++++++++
Done
Proxy Verify OK
Cấu hình để container chạy dưới quyền của non-root user có thể truy cập host credential
+ Tại node phụ, login với root và chạy: # cd /etc/grid-security
# cp hostkey.pem containerkey.pem # cp hostcert.pem containercert.pem
# chown globus.globus containerkey.pem containercert.pem + kiểm tra lại permission của các file *.pem
# ls -l /etc/grid-security/*.pem ————–
-rw-r–r– 1 globus globus 2670 2012-04-14 19:47 containercert.pem -r——– 1 globus globus 887 2012-04-14 19:47 containerkey.pem -rw-r–r– 1 root root 2670 2012-04-14 16:51 hostcert.pem
-r——– 1 root root 887 2012-04-14 16:40 hostkey.pem
Bổ sung cơ chế authorization cho các user
Cách làm như sau:
+ Tại node phụ, login với user thanh, chạy lệnh sau để lấy thông tin về username và subject-name $ grid-cert-info -subject /O=Grid/OU=GlobusTest/OU=simpleCA-thang.uit.vn/OU=uit.vn/CN=Thanh Nguyen $ whoami thanh
+ login với root, chạy lệnh sau để tạo 1 ánh xạ (map) giữa username và subject-name
# grid-mapfile-add-entry -dn “/O=Grid/OU=GlobusTest/OU=simpleCA- thang.uit.vn/OU=uit.vn/CN=Thanh Nguyen” -ln thanh
(lưu ý, có dấu nháy kép bao quanh subject-name bởi vì CN=Thanh Nguyen có khoảng trắng)
Modifying /etc/grid-security/grid-mapfile …
/etc/grid-security/grid-mapfile does not exist… Attempting to create /etc/grid- security/grid-mapfile
New entry:
“/O=Grid/OU=GlobusTest/OU=simpleCA-thang.uit.vn/OU=uit.vn/CN=Thanh Nguyen” thanh
(1) entry added
+ mở file grid-mapfile và xác nhận 1 entry mới được add thành công # cat /etc/grid-security/grid-mapfile
“/O=Grid/OU=GlobusTest/OU=simpleCA- thang.uit.vn/OU=uit.vn/CN=Thanh Nguyen” thanh
Triển khai Globus Toolkit trong mạng
Mô hình và chuẩn bị
Mô hình triển khai Globus Toolkit trong mạng gồm 4 máy tính như hình sau:
Trong đó:
Một máy Control Server (nút chính): đóng vai trò điều phối hoạt động và quản lý các công việc trong hạ tầng lưới. Ngoài ra, nó còn cung cấp các dịch vụ chứng thực bằng chứng chỉ số cho các nút tính toán và người dùng trong lưới.
Ba máy Grid Node (nút phụ): đóng vai trò là các nút tính toán để gửi công việc cần xử lý lên lưới cũng như thực thi các công việc được giao.
Yêu cầu và chuẩn bị cho các máy trong bài này như sau: • Chạy hệ điều hành Fedora 10
• Sử dụng phiên bản Globus Toolkit 5.2.4
• Các nút chính và phụ đều có thể liên lạc được với nhau bằng IP và hostname, chi tiết các tham số như bảng dưới đây:
Các bước cài đặt
Trong phần này, ta sẽ lần lượt thực hiện trên nút chính và tới các nút phụ các bước cơ bản sau:
• Cài đặt các gói phụ thuộc cần thiết: Đây là các gói phần mềm, thư viện cần thiết cho Globus Toolkit.
• Cài đặt Globus Toolkit: Bộ công cụ phần mềm mã nguồn mở được dùng cho việc xây dựng các lưới tính toán.
• Cài đặt Simple CA: Đây là thành phần cung cấp dịch vụ chứng thực bằng chứng chỉ số cho các máy tính, dịch vụ và người dùng trong lưới.
• Thiết lập các cấu hình bảo mật cơ bản: Chỉ cần thực hiện trên các nút phụ.
• Khởi chạy Java WS Core: Đây là thành phần cung cấp tập các thư viện và công cụ làm nền tảng cho việc thực thi các dịch vụ web và non-web trong lưới.
• Cấu hình GridFTP: Đây là thành phần cung cấp dịch vụ truyền nhận và quản lý dữ liệu có độ tin cậy và hiệu suất cao.
• Cấu hình RTF: Đây là thành phần cung cấp dịch khả năng truyền nhận tập dữ liệu lớn với độ tin cậy cao.
• Cấu hình GRAM4: Đây là thành phần quản lý các tài nguyên tính toán trong lưới.
Dưới đây là hướng dẫn chi tiết.
Cài đặt chung cho cả nút chính và phụ
Cài đặt các gói phụ thuộc
1) Đăng nhập với root, có kết nối Internet. 2) Cài JDK 7 - Tải về tại http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3- download-1501626.html - Cài bằng lệnh # rpm –ivh jdk-7u3-linux-i586.rpm - Kiểm tra cài JDK thành công
# 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) ———————–
3) Cài Apache Ant - Tải về tại
http://mirror-fpt-telecom.fpt.net/apache/ant/binaries/apache-ant-1.8.3- bin.tar.gz
- Rồi giải nén vào thư mục /usr/local/
# tar -zxvf apache-ant-1.8.3-bin.tar.gz -C /usr/local/
- Mở file /etc/profile và thêm vào cuối file các dòng thiết lập biến môi trường sau
export JAVA_HOME=/usr/java/jdk1.7.0_03 export ANT_HOME=/usr/local/apache-ant-1.8.3
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin - Chạy lệnh sau để áp dụng ngay các thiết lập trên
# . /etc/profile
- Cài thêm các option tasks cho Ant # cd $ANT_HOME
# ant -f fetch.xml -Ddest=system - Kiểm tra cài Ant thành công # ant-version
———————–
Apache Ant(TM) version 1.8.3 compiled on February 26 2012 ———————–
4) Cài gcc, g++, tar, sed, zlib, make, sudo, OpenSSL, Perl # yum install gcc
# yum install gcc-c++ # yum install tar # yum install sed # yum install zlib # yum install make # yum install sudo # yum install openssl # yum install openssl-devel # yum install perl
# yum install perl-XML-Parser # yum install libtool-ltdl-devel
Cài đặt Globus Toolkit
1) Tạo user globus và đặt mật khẩu cho nó (thống nhất là 123 cho tất cả các tài khoản khác)
# useradd globus # passwd globus
2) Tải về mã nguồn của Globus Tookit 4.2.1 tại:
http://www.globus.org/toolkit/survey/index.php?download=gt4.2.1-all-source- installer.tar.gz
sau đó chép vào home folder của user globus tại /home/globus
3) Tạo folder chứa chương trình sau khi build và gán quyền sở hữu cho user và group globus
# mkdir /usr/local/globus-4.2.1
# chown globus:globus /usr/local/globus-4.2.1 4) Chuyển sang user globus
5) Giải nén file chứa mã nguồn tải được ở trên và chuyển vào folder vừa được giải nén
$ tar -zxvf gt4.2.1-all-source-installer.tar.gz $ cd gt4.2.1-all-source-installer
6) Lần lượt chạy các lệnh sau. Đảm bảo sau khi chạy mỗi lệnh đều không bị báo lỗi.
$ ./configure –prefix=/usr/local/globus-4.2.1 $ make
$ make install
(Quá trình build và install cũng khá lâu, thường mất hơn 30 phút) 7) Thiết lập các biến môi trường
- Đăng nhập với root
- Mở file /etc/profile và thêm vào cuối file 2 dòng sau export GLOBUS_LOCATION=/usr/local/globus-4.2.1