MỤC LỤC
LỜI NÓI ĐẦU
CHƯƠNG 1. TÍNH TOÁN LƯỚI 10
1.1 Tổng quan về Tính toán lưới 10
1.1.1 Tính toán lưới là gì? 10
1.1.2 So sánh với các mô hình, công nghệ khác 12
1.1.3 Phân loại mạng lưới 13
1.2 Kiến trúc và thành phần chính của hệ thống lưới . 15
1.2.1 Tổng quan kiến trúc lưới .15
1.2.2 Các thành phần theo mô hình chức năng 18
1.2.3 Các thành phần theo mô hình vật lý 19
1.3. Các chuẩn cho tính toán lưới . 19
1.3.1 OGSA/OGSI là gì? .20
1.3.2 Chuẩn OGSI .20
1.3.3 Chuẩn OGSA 22
1.4 Các thành phần chính trong mô hình chức năng của lưới 24
1.4.1 Bảo mật .24
1.4.1.1 Cơ chế bảo mật trong môi trường lưới 25
1.4.1.2 Các chính sách bảo mật trong môi trường lưới .25
1.4.1.3 Hạ tầng an ninh mạng lưới GSI (Grid Security Infrastructure) 26
1.4.2 Quản lý tài nguyên lưới 27
1.4.2.1 Những thách thức trong quản lý tài nguyên lưới 27
1.4.2.2 Hệ quản trị tài nguyên GRAM 29
1.4.3 Quản lý dữ liệu .30
1.4.3.1 Giao thức truyền tập tin mạng lưới GridFTP 30
1.4.3.2 Dịch vụ định vị bản sao RLS 33
1.4.4 Lập lịch trong môi trường lưới .36
1.4.5 Grid Portal 38
1.4.5.1 Các yêu cầu đối với Grid Portal 39
1.4.5.2 Chuyển tải các Job trong Grid Portal 39
1.4.6 Giám sát lưới 40
1.4.6.1 Quy trình giám sát .41
1.4.6.2 Yêu cầu đối với một hệ thống giám sát lưới .41
1.4.6.3 Kiến trúc bộ giám sát lưới GMA (Grid Monitoring Architecture) .42
1.4.6.4 Phân loại các hệ thống giám sát lưới 43
1.5 Kết chương 44
CHƯƠNG 2. TỔNG QUAN VỀ GLOBUS .45
2.1 Tổng quan kiến trúc chung của GT 45
2.1.1 Các chức năng chính của GT 45
2.1.2 Các đặc trưng của GT4 .46
2.1.3 Tóm lược về kiến trúc của GT4 48
2.2 Kiến trúc hướng dịch vụ . 48
2.2.1 GT4, các hệ thống phân tán, các dịch vụ Web 48
2.2.2 Cơ sở hạ tầng và ứng dụng hướng dịch vụ 49
2.2.3 Kiến trúc hướng dịch vụ (Service Oriented Architecture-SOA) .50
2.3 Kiến trúc GT4 . 51
2.3.1 Kiến trúc tổng quan 51
2.3.2 Triển khai dịch vụ Web trên GT4 .53
2.4 Quản lý thực thi trong GT4 54
2.4.1 Tổng quan về GT4 GRAM .55
2.4.2 Lệnh globusrun-ws .56
2.4.3 Cách thức hoạt động của GT4 GRAM 60
2.4.4 Cấu hình và quản trị GT4 GRAM .62
2.5 Quản lý dữ liệu trong GT4 . 63
2.5.1 Tổng quan về quản lý dữ liệu trong GT4 63
2.5.2 Di chuyển dữ liệu 63
2.5.3 Tạo bản sao dữ liệu .64
2.6 Theo dõi và phát hiện . 65
2.6.1 Hệ thống theo dõi và phát hiện - MDS4 .65
2.6.2 Bộ gộp (aggregator) và nguồn thông tin .66
2.6.3 Nguồn thông tin và việc đăng ký 67
2.7 Kết chương 67
CHƯƠNG 3. CÁC KỸ THUẬT LƯỚI HIỆN ĐƯỢC TRIỂN KHAI Ở VIỆT NAM 68
3.1 Desktop Grids . 68
3.1.1 Tính toán phân tán trong các xí nghiệp .68
3.1.2 Định nghĩa Desktop Grid 69
3.1.3 Giá trị của lưới Desktop Grid .70
3.1.4 Các phần tử kỹ thuật chính .70
3.1.5 Các khía cạnh thực tế cần xem xét 72
3.1.6 Grid Server .73
3.2 Cluster Grids . 74
3.2.1 Kiến trúc lưới Cluster .74
3.2.2 Bó phần mềm lưới cluster của Sun .75
3.2.3 Yêu cầu thiết kế 78
3.2.4 Phần cứng mạng .79
3.2.5 Quản lý một Cluster Grid .80
3.3 Kết nối Cluster vào Grid . 81
3.3.1 Sự cần thiết của việc kết nối grid và cluster 82
3.3.2 Kết nối Globus-based Grid và PBS-based Cluster 82
3.3.2.1 GRAM .82
3.3.2.2 PBS 83
3.3.2.3 Các yêu cầu đối với thành phần kết nối 87
3.4 Kết chương 90
CHƯƠNG 4. TRIỂN KHAI THỬ NGHIỆM 91
4.1 Lập bản thiết kế kiến trúc lưới 91
4.2 Cài đặt một Grid . 95
4.2.1 Cấu hình phần cứng của lưới 95
4.2.2 Yêu cầu trước khi cài đặt 96
4.2.3 Cài đặt cho nút chính 96
4.2.4 Cài đặt các nút tính toán .101
4.2.5 Đồng bộ thời gian giữa các nút trong lưới 102
4.2.6 Cấu hình các dịch vụ mức lưới .103
4.3 Kết nối một Cluster vào Grid . 105
4.3.1 Cấu hình phần cứng 105
4.3.2 Cấu hình cluster-based PBS 106
4.3.3 Cấu hình lưới dựa trên GT 108
4.4 Kết chương 109
KẾT LUẬN VÀ KIẾN NGHỊ .110
TÀI LIỆU THAM KHẢO .111
113 trang |
Chia sẻ: maiphuongtl | Lượt xem: 2416 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
không cung cấp các đặc trưng về kế toán và lập hóa đơn. Những đặc
trưng được cung cấp bởi các cơ chế quản lý địa phương khác như hệ thống hàng đợi
hoặc bộ lập lịch. GRAM làm việc như một giao tiếp trừu tượng cho các nguồn tài
nguyên không đồng nhất trên lưới, cụ thể nó chịu trách nhiệm:
Phân bố tài nguyên cho các công việc
Đệ trình công việc, chạy ứng dụng trên các máy từ xa và nhận kết quả trả về
Quản lý trạng thái công việc và các tiến trình
Như vậy có thể thấy được GRAM đóng vai trò như thành phần trung gian
làm nhiệm vụ giao tiếp giữa môi trường tính toán toàn cục với các thành phần cục
bộ có khả năng tạo ra các tiến trình chạy. Vì vậy, điểm quan trong của GRAM là, nó
phải đáp ứng việc giao tiếp với các bộ quản lí tài nguyên địa phương chẳng hạn
như: Condor, Fork, PBS, LSF, NQE, v.v... trong đó phần mềm quản lý tài nguyên
và phân tải PBS được sử dụng rộng rãi nhất.
3.3.2.2 PBS
¾ Giới thiệu PBS
PBS (Portable Batch System) [15] [14] là hệ thống phân tải và quản lý tài
nguyên, dùng trong các hệ thống tính toán song song phân cụm. Nhiệm vụ chính
của hệ thống PBS đó là cung cấp các khả năng về khởi tạo và lập lịch cho việc thực
thi các công việc và sắp xếp các công việc đó trên các máy trạm. Hệ thống cũng cho
phép xác định trước các nguồn tài nguyên sẽ được sử dụng khi thực thi công việc và
đảm bảo chắc chắn dùng đúng tài nguyên yêu cầu.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 84
PBS đảm nhận giao tiếp giữa Server và các máy trạm, máy chủ thông qua
PBS quản lý hoạt động của các máy trạm. PBS bao gồm ba môđun chính:
PBS_Server, PBS_Scheduler, PBS_MOM. PBS cung cấp rất nhiều chức năng cho
các hệ thống tính toán hiệu năng cao. Sau đây là một số chức năng quan trọng nhất
của PBS:
1. Chia sẻ tài nguyên: cung cấp một cơ chế lập lịch cho các công việc một
cách trong suốt trên bất kỳ một hệ thống PBS nào, bởi bất kỳ người sử dụng nào có
thẩm quyền. Công việc có thể được yêu cầu từ một máy client bất kỳ, cục bộ hay từ
xa.
2. Giao diện đồ hoạ: giúp người sử dụng chuyển các yêu cầu tính toán ở chế
độ lô hoặc chế độ tương tác, truy vấn các công việc, hàng đợi công việc và tình
trạng hệ thống; và theo dõi sự tiến triển của các công việc. Ngoài ra PBS cũng hỗ
trợ giao diện sử dụng chế độ dòng lệnh cho những người sử dụng chuyên nghiệp.
3. Cơ chế bảo mật: cho phép quản trị thiết lập hoặc huỷ bỏ việc truy cập đến
PBS của một người sử dụng, một nhóm người, một máy hoặc một mạng nào đó.
4. Nhật ký: cho phép ghi lại tất cả các hoạt động trên của hệ thống theo từng
người, từng nhóm người hoặc từng máy.
5. Tự động chuyển tệp: là cơ chế sao chép các tệp cần thiết cho việc thực
hiện một công việc trên các máy trạm tính toán. Các tệp cần chuyển có thể là các
tệp dữ liệu hoặc các tệp thực thi.
6. Hỗ trợ các công việc song song: cho phép hoạt động cùng với các thư viện
lập trình song song như MPICH, MPI-LAM. Các chương trình có thể được lập lịch
để chạy trên các hệ đa bộ xử lý hoặc trên các hệ thống đa máy tính.
7. Hỗ trợ tính toán lưới: cung cấp công nghệ siêu tính toán (meta-computing)
và tính toán lưới, bao gồm việc hỗ trợ cho GGT (Globus Grid Toolkit). Việc hỗ trợ
này chỉ được thực hiện trong phiên bản thương mại PBS Pro.
8. Giao diện lập trình được PBS: cung cấp để người lập trình có thể tự viết
các lệnh mới cho PBS, tích hợp PBS vào các ứng dụng của họ hoặc cài đặt các cơ
chế lập lịch riêng.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 85
9. Tự động phân tải: là cơ chế cho phép phân tải các công việc trên các tài
nguyên của hệ thống Cluster.
¾ Các thành phần cơ bản của PBS
Hình 3-5 Các thành phần trong PBS
1. Mô-đun quản lý công việc (Job Server): là thành phần trung tâm của PBS.
Tất cả các thành phần khác của PBS giao tiếp với module quản lý công việc qua
một địa chỉ IP duy nhất. Chức năng của module quản lý công việc là cung cấp các
dịch vụ, như là nhận/tạo ra các công việc lô, thay đổi các công việc, bảo vệ công
việc khi có sự cố hệ thống, và thực hiện công việc. Module này quản lý một hoặc
nhiều hàng đợi công việc, một công việc phải thuộc vào một hàng đợi. Các hàng đợi
được server quản lý bởi một tập thuộc tính như kiểu, tài nguyên, tên,...
2. Module thực hiện công việc (PBS Mom): được chia nhỏ thành các thành
phần chức năng sau: Job Executor (JE), là tiến trình ngầm chịu trách nhiệm thực thi
công việc. Khi thực hiện, JE nhận một bản copy công việc từ Server, xử lý công
việc, và sau đó có thể sẽ đảm nhận luôn công việc trả kết quả về cho user nếu được
Server yêu cầu. Mỗi một tiến trình ngầm JE chạy trên một máy tính trạm trong
mạng; Resource Monitor (RM), là bộ phận chịu trách nhiệm theo dõi, kiểm tra các
nguồn tài nguyên của hệ thống và báo cho bộ lập lịch Scheduler.
3. Mô-đun quản lý tài nguyên (Job Scheduler): là thành phần chịu trách
nhiệm xác định xem công việc nào sẽ chạy và chạy trên tài nguyên nào.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 86
Hình 3-6 Cơ chế hoạt động của PBS
Tương tác giữa các module trên có thể được mô tả như sau:
1. Sự kiện kích hoạt module quản lý công việc bắt đầu một vòng lập lịch.
2. Module quản lý công việc gửi lệnh lập lịch cho bộ lập lịch.
3. Module lập lịch yêu cầu thông tin về tài nguyên từ module quản lý tài
nguyên.
4. Module quản lý tài nguyên trả về các thông tin yêu cầu.
5. Bộ lập lịch yêu cầu các thông tin từ module quản lý công việc.
6. Module quản lý công việc gửi thông tin trạng thái của các công việc tới bộ
lập lịch, bộ lập lịch đưa ra chính sách quyết định việc thực hiện công việc.
7. Bộ lập lịch gửi yêu cầu thực hiện công việc đến module quản lý công việc.
Module quản lý công việc gửi công việc đến các module thực thi công việc
để thực hiện.
¾ Đệ trình công việc trong PBS
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 87
Người sử dụng có thể thực hiện lệnh trực tiếp trên màn hình console để
truyền công việc cũng như các yêu cầu của mình tới Server. Các shell [14] chuẩn
của linux có thể giúp ta biên dịch mã lệnh để thực hiện các job.
Lệnh qsub là lệnh dùng để đệ trình công việc mình muốn thực hiện lên
server. Cấu trúc lệnh như sau:
% qsub [option] mysubrun
trong đó option là các lựa chọn khi thực hiện công việc và mysubrun là công việc
cần thực hiện. Các tuỳ chọn dùng để mô tả tài nguyên; trong ví dụ sau:
% qsub -l ncpus=16, walltime=4:0:0 mysubrun
ncpus là số CPU sử dụng để thực hiện công việc
walltime là thời gian dự kiến thực hiện công việc
Các công việc cũng có thể được miêu tả trong một file đặc tả, trong file thực
hiện mô tả tất cả các thông số tài nguyên cần sử dụng, đầu vào, đầu ra… Khi đó
việc đệ trình công việc trong PBS sẽ được thực hiện bằng một lệnh đơn giản như
sau:
% qsub mysubrun
Trong đó mysubrun là file mô tả công việc. Như vậy để có thể đưa một công
việc từ trên lưới xuống cho PBS_Server thì ta phải làm thông suốt quá trình chuyển
đổi công việc từ file đặc tả RSL của Globus sang file miêu tả công việc của PBS,
vấn đề này sẽ được đề cập trong phần tiếp theo của đồ án.
3.3.2.3 Các yêu cầu đối với thành phần kết nối
Coi Cluster là một tài nguyên lưới như các tài nguyên khác, nó cung cấp một
giao diện truy cập thống nhất cho các thành viên lưới khác sử dụng. Globus toolkit
cung cấp các modul cho phép các thành phần của globus giao tiếp được với hầu hết
các hệ quản lý cluster phổ biến như PBS, LSF, Condor..(Chương 2).
Như vậy, để một cluster trở thành một tài nguyên lưới ta sẽ cài Globus
Toolkit lên nút chủ của cluster, thêm một mô-đun thực hiện giao tiếp với nút chủ
của cluster và thực hiện các cấu hình cần thiết để cho Globus có thể giao tiếp được
với thành phần quản lý tài nguyên địa phương của cluster.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 88
Thông thường ở trên lưới luôn tồn tại hai loại công việc có sự khác nhau rõ
rệt. Thứ nhất, là những công việc thông thường được thực hiện qua dịch vụ lưới,
người sử dụng chỉ việc đưa ra một bộ dữ liệu đầu vào qua GridPortal và nhận kết
quả trả về. Loại công việc thứ hai, là những công việc có tính chuyên môn cao, đòi
hỏi khối lượng tính toán lớn, đối với những công việc này thì người sử dụng phải
biết rõ về tài nguyên sẽ thực hiện công việc (siêu máy tính hay Cluster), viết chương
trình thực hiện đối với loại tài nguyên tương ứng, sau đó đệ trình công việc thông
qua giao diện GridPortal, lưới sẽ tìm ra tài nguyên tương ứng dựa trên thời gian
thực hiện và số nút tính toán, lưới thực hiện truyền công việc cho cluster cùng với
các tham số để thực hiện, cluster thực hiện công việc và sau đó trả lại kết quả cho
lưới sau đó lưới mới thực hiện trả kết quả về cho người dùng. Việc kết nối giữa lưới
dựa trên GT và cluster dựa trên PBS thực chất là thực hiện giao tiếp giữa thành
phần GRAM trong lưới và thành phần PBS Server trên nút chủ của Cluster thông
qua thành phần Globus-scheduler-pbs.
GRAM: cung cấp một giao diện chuẩn cho việc yêu cầu và sử dụng tài
nguyên hệ thống từ xa để thực hiện các công việc. Đối với các công việc chỉ yêu
cầu máy tính đơn hay siêu máy tính thì GRAM thực hiện công việc ngay trên máy
tính đó. Đối với những công việc yêu cầu thực hiện trên Cluster thì GRAM sẽ
chuyển nội dung công việc cho thành phần Globus-scheduler-pbs.
Globus-scheduler-pbs: thành phần này có nhiệm vụ chuyển nội dung công
việc sang dạng mà PBS_Server có thể hiểu được.
PBS_Server: là nút chủ thực hiện lập lịch (địa phương), quản lý và thực hiện
phân chia công việc thực hiện trên các nút con.
Như vậy có thể thấy việc kết nối cluster vào lưới không có nghĩa là chúng ta
phải quản lý đến từng máy đơn trong cluster mà quản lý cluster một cách tổng thể.
Lưới sẽ quản lý cả cụm máy tính trong cluster như một tài nguyên đơn nhất thông
qua bộ quản lý tài nguyên địa phương PBS.
¾ Thành phần Globus Scheduler PBS
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 89
Globus Toolkit có cung cấp cho chúng ta một số dịch vụ để giao tiếp với
PBS_Server. Những dịch vụ này nằm trong gói cài đặt scheduler-pbs-3.2-
src_bundle.tar.gz.
Sau khi cài đặt xong thì việc tiếp theo là cấu hình cho hệ thống. Đây thực sự
là một vấn đề không đơn giản. Chi tiết về việc cấu hình và xây dựng một shell script
cấu hình tự động sẽ được trình bày trong chương 4. Khi việc cấu hình hoàn tất, thực
hiện khởi động trình chứa (globus-start-container) thì trong các dịch vụ của Globus
Toolkit sẽ có thêm hai dịch vụ:
toryService
JobFactoryService
Dịch vụ MasterPbsManagedJobFactoryService đóng vai trò là một giao diện
đệ trình công việc, trực tiếp nhận yêu cầu công việc từ phía client. Đối với từng
công việc dịch vụ MasterPbsManagedJobFactoryService sẽ gọi đến dịch vụ
PbsManagedJobFactoryService sẽ sinh ra các thể hiện (instance) tương ứng trực
tiếp làm việc với client.
¾ Hoạt động của Globus Scheduler Pbs
Như đã trình bày ở trên, Globus Scheduler Pbs gồm 4 thành phần (mjs-pbs,
mmjfs-pbs, rips-pbs-provider, globus-job-manager-pbs) giúp cho việc hoạt động đệ
trình công việc lên PBS_Server thực hiện được. Giao tiếp giữa các thành phần này
được mô tả trong hình sau:
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 90
Hình 3-7 Hoạt động của Globus Scheduler Pbs
1. Người dùng có giấy chứng nhận được cấp bởi nhà thẩm quyền, được thực
hiện trên tài nguyên lưới (Quy định trong Grid-mapfile) thực hiện đệ trình công việc
với trình quản lý công việc MMJFS-PBS.
2. Trình quản lý công việc MMJFS-PBS thực hiện sinh ra một thể hiện quản
lý công việc phục vụ cho người dùng MJS-PBS.
3. Trình quản lý công việc MJS-PBS thực hiện lấy file đặc tả công việc của
người dùng và chuyển cho thành phần biên dịch Globus-job-manager-pbs.
4. Thành phần Globus-job-manager-pbs thực hiện chuyển file đặc tả người
dùng thành công việc cho PBS_Server.
5. Trình quản lý công việc người dùng yêu cầu PBS_Server thực hiện công
việc.
6. PBS_Server thực hiện công việc và đưa kết quả trả về cho thành phần
quản lý thông tin tài nguyên RIPS-PBS.
7. RIPS-PBS trả kết quả về cho trình quản lý công việc người dùng.
8. Trình quản lý công việc người dùng MJS-PBS trả kết quả về cho người sử
dụng.
3.4 Kết chương
Chương này đã đưa ra các khái niệm, khía cạnh kỹ thuật và cơ chế triển khai,
kết nối một số dạng lưới đang được triển khai tại các trung tâm nghiên cứu về tính
toán lưới ở nước ta. Phần kiến thức được trình bày trong chương này sẽ làm tiền đề
kết hợp với Chương 1 và Chương 2 để tiến hành xây dựng một lưới cụ thể trong
chương tiếp theo.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 91
CHƯƠNG 4. TRIỂN KHAI THỬ NGHIỆM
4.1 Lập bản thiết kế kiến trúc lưới
Việc xây dựng một hệ thống tính toán lưới không chỉ đơn thuần là cài đặt các
phần mềm, các ứng dụng trên các tài nguyên kết nối sẵn có mà phải tuân theo quy
trình quy hoạch, thiết kế một cách bài bản, chuyên nghiệp. Về cơ bản, việc thiết kế
lưới bao gồm một số bước chính sau [2]:
Khảo sát yêu cầu nghiệp vụ của tổ chức
Quy hoạch hạ tầng mạng sẵn có
Lựa chọn loại lưới
Lựa chọn topo lưới
Lựa chọn hạ tầng (hạ tầng phần mềm, phần cứng, các chuẩn mở, cơ chế an
toàn, bảo mật cho lưới…)
Chính sách quản trị lưới..
Triển khai một lưới
Ngoài ra, khi thiết kế một lưới thì kiến trúc lưới đó cần phải thoả mãn được
các yêu cầu cơ bản như: tính an toàn, tĩnh sẵn sàng và hiệu suất cao.
¾ Khảo sát yêu cầu
Trong thiết kế kiến trúc lưới, bước khảo sát yêu cầu là bước rất quan trọng,
kết qủa của nó sẽ ảnh hưởng trực tiếp đến tất cả các bước tiếp theo. Thường trong
bước này, người thiết kế phải đưa ra được những thông tin cần thiết như mục đích
của việc xây dựng lưới là gì? Lưới có những yêu cầu gì về nghiệp vụ, hạ tầng và
ứng dụng? Cuối cùng cần phải tinh chỉnh và xem xét lại xem những yêu cầu này có
phù hợp với hạ tầng phần cứng và phần mềm cũng như nguồn nhân lực sẵn có hay
không.
Sau khi đã xác định đươc các yêu cầu đặt ra cho lưới, đồng thời nhận thấy
rằng hạ tầng hiện có là đủ đáp ứng để xây dựng lưới, ta phải tiến hành qui hoạch lại
hạ tầng mạng để phục vụ việc triển khai lưới được thuận tiện và khoa học.
¾ Lựa chọn loại lưới
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 92
Thường thì tuỳ theo yêu cầu nghiệp vụ của lưới mà ta sẽ chọn ra loại lưới
thích hợp. Nhưng nhìn chung, các lưới được triển khai thường rơi vào hai dạng sau:
Lưới tính toán (Computational Grid): dùng khi muốn kết hợp và tăng sức
mạnh tính toán của các hệ thống tính toán phân tán. Đặc trưng cơ bản nhất của lưới
tính toán là dựa trên sự tích hợp các đơn vị có sức mạnh tính toán nhưng khả năng
lưu trữ không cao. Lợi ích của các lưới tính toán là giảm thiểu chi phí sở hữu và rút
ngắn thời gian phát triển. Nó được dùng cho mục đích nâng cao hiệu suất sử dụng
các hệ thống máy tính và hệ thống các ứng dụng sẵn có và dùng để giải các bài toán
khoa học, các bài toán mô phỏng, các bài toán đánh giá cơ hội đầu …
Lưới dữ liệu (Data Grid): chủ yếu dùng vào việc cung cấp khả năng truy cập
đến các nguồn dữ liệu hỗn hợp, phân tán và bảo mật cho các thực thể tham gia lưới.
Lưới dữ liệu có thể được hiểu như các cơ sở dữ liệu liên hợp, nó giữ vai trò liên kết
các dữ liệu rời rạc thành một cơ sở dữ liệu ảo thống nhất và người dùng có thể truy
cập cơ sở dữ liệu này qua một giao diện duy nhất. Lưới dữ liệu thích hợp với các tổ
chức, các doanh nghiệp có nhu cầu mở rộng khả năng khai phá, sử dụng dữ liệu trên
phạm vi rộng nhằm tối ưu hoá việc sử dụng hạ tầng thiết bị lưu trữ sẵn có và giảm
thiểu hoá sự phức tạp trong việc quản lý dữ liệu.
¾ Lựa chọn topo lưới
Hiện nay khi triển khai một lưới, người thiết kế thường lựa chọn một trong
số các topo lưới thông dụng sau [2]:
Intragrid: thường được triển khai trong các tổ chức hoặc doanh nghiệp. Dựa
trên kiến trúc mạng LAN hoặc mạng Intranet dùng riêng của tổ chức, doanh nghiệp
đó. Nó có: Băng thông và mức độ sẵn sàng cao; Cơ chế an toàn, bảo mật riêng rẽ;
Môi trường tác nghiệp độc lập. Topo lưới dạng này rất phù hợp khi triển khai các
lưới tính toán hoặc lưới dữ liệu.
Extragrid: được thiết lập dựa trên hai hoặc nhiều Intragrid. Đặc trưng của
loại topo này là: Cơ chế an toàn, bảo mật phân tán; Có sự tham gia của nhiều tổ
chức doanh nghiệp; Dựa trên mạng WAN. Extragrid thích hợp với các tổ chức
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 93
muốn xây dựng kết nối mạng với các đối tác của mình (B2B) nhằm chia sẻ tài
nguyên, dữ liệu dựa trên sự tin tưởng lẫn nhau.
Intergrid: xây dựng trên mạng WAN hoặc Internet và được sử dụng bởi các
công ty công nghệ, tập đoàn công nghiệp, hoặc nhà sản xuất công nghiệp. Đặc trưng
của Intergrid là: Có sự tham gia của nhiều tổ chức; Kết nối nhiều đối tác; Kết nối
nhiều mạng liên kết; Cơ chế an ninh phức tạp, phân tán.
¾ Lựa chọn hạ tầng lưới
Khái niệm hạ tầng ở đây bao gồm cả phần cứng vật lý và các phần mềm
được sử dụng để kểt nối các máy tính của một lưới lại với nhau. Hạ tầng này cung
cấp các dịch vụ cho việc kết nối, đảm bảo an toàn và quản trị.
Hạ tầng bảo mật: giải pháp bảo mật hay được áp dụng cho các hệ thống tính
toán lưới là sử dụng tường lửa. Giải pháp này bảo vệ được các máy chủ trong lưới
tránh khỏi những tấn công từ bên ngoài và tạo lập thêm một hàng rào bảo vệ, ngăn
cản những truy nhập không mong muốn từ người sử dụng bên ngoài lẫn bên trong.
Hạ tầng mạng: phải cung cấp băng thông đủ lớn cho các ứng dụng và dịch
vụ trên nó. Hạ tầng mạng cần phải thường xuyên được bảo trì, tuỳ chỉnh nhằm đảm
bảo hiệu suất hoạt động và tính sẵn sàng cao nhất.
Hạ tầng lưu trữ: đây là một trong những sức mạnh vô tận của hệ thống tính
toán lưới. Khi thiết kế hệ thống, người thiết kế phải trả lời được các câu hỏi như:
cách thức nào dùng để bảo đảm an toàn cho các thiết bị lưu trữ, cách thức nào dùng
trong nhân bản dữ liệu, và làm sao để quản lý các thiết bị này một cách hiệu quả
nhất. Mục tiêu cuối cùng của việc thiết kế các lưới là phải đảm bảo sự sẵn sàng của
dữ liệu cho các tài nguyên và người dùng khi có yêu cầu.
¾ Lựa chọn tập các dịch vụ cơ bản cho lưới
Tập các dịch vụ này gồm các thành phần: Bộ cung cấp các tính năng bảo
mật; Tập các thành phần cơ bản cuả GT như Grid clients; CA; GateKeepers; MDS
(GRIS/GIIS); Các chứng chỉ số cho việc xác thực; Bộ lập lịch công việc cơ bản;
Các thiết bị hạ tầng thông dụng như mạng quản trị, tường lửa, hệ thống phát hiện
truy cập trái phép; Mạng các thiết bị lưu trữ …
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 94
¾ Quản trị lưới tính toán
Đối với người quản trị lưới, cần phải nắm rõ các sản phẩm liên quan và các
tính năng của hệ thống tính toán lưới. Các sản phẩn liên quan đến hệ thống tính toán
lưới bao gồm: Phần mềm tầng trung gian; Hệ thống giám sát hiệu suất lưới; Grid
portals; Môi trường lập trình; Bộ lập lịch; Hệ thống phát triển và kiểm thử lưới.
Các tính năng của hệ thống tính toán lưới: Quản lý dịch vụ; Truyền thông
dịch vụ; Quản lý chính sách; Lựa chọn và triển khai các phần mềm trung gian, lựa
chọn các ứng dụng, trả kết quả về cho các ứng dụng; Điều khiển dịch vụ; SLAs;
Quản lý hiệu suất/tài khoản/lỗi; an toàn và bảo mật.
¾ Triển khai một lưới
Một lưới tính toán đơn giản có thể được xây dựng dựa trên một thư viện lập
trình hỗ trợ các tính năng tính toán lưới, như sử dụng các tính năng được cung cấp
bởi bộ công cụ Globus Toolkit. Tuy nhiên, khi hệ thống được mở rộng và trở nên
phức tạp, ta cần phải tiếp cận theo phương thức khác.
Đầu tiên là bước thiếp lập hạ tầng cho một lưới tính toán đơn giản dựa trên
Globus Toolkit bao gồm các cài đặt trên máy chủ và các máy trạm như: Hệ điều
hành, các thư viện, bộ công cụ GT; Thiết lập các dịch vụ, đơn vị chứng thực, bộ
quản lý tài nguyên …
Tiếp theo là các bước thiết lập ứng dụng, dịch vụ cho hệ thống tính toán lưới
vừa được cài đặt dựa trên Globus Toolkit hoặc bất cứ bộ công cụ nào dựa trên
chuẩn OGSA bao gồm: Định nghĩa các dịch vụ của lưới bằng ngôn ngữ WSDL;
Sinh mã Java cho việc định nghĩa WSDL; Viết mã cài đặt phía máy chủ, máy
khách; Triển khai và thử nghiệm các dịch vụ lưới sử dụng trình duyệt OGSA.
Sau đây là danh sách công việc cần thực hiện: Dự kiến và quy định tài
nguyên của lưới; Lựa chọn phần mềm trung gian; Lựa chọn các công cụ quản trị,
xây dựng quy trình quản trị đối với phần mềm trung gian; Cài đặt, thử nghiệm, tuỳ
chỉnh và phát hành các phần mềm, ứng dụng của lưới; Thiết lập bộ điều khiển dịch
vụ, các công cụ, quy trình kiểm soát, điều khiển an ninh; Thiết lập các công cụ quản
lý lỗi, hiệu năng, hạ tầng mang tính tích hợp.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 95
¾ Các yêu cầu cơ bản của lưới sau khi thiết lập
Tính an toàn: lưới sau khi triển khai phải giảm thiểu rủi ro đến mức chấp
nhận được, nghĩa là trong bản thiết kế cần phải vạch rõ các yêu cầu về an toàn, bảo
mật của hệ thống, đồng thời phải đưa ra các công cụ và các biện pháp nhằn tăng
tính an toàn và bảo mật cho hệ thống. Mức độ an toàn và bảo mật của hệ thống tính
toán lưới còn phụ thuộc vào topo lưới và dữ liệu cũng như tài nguyên cần bảo mật.
Mức độ bảo mật cũng khác nhau giữa các lưới được dùng trong các công ty có tính
chất nghiệp vụ khác nhau. Bản thân các mô hình an toàn và bảo mật cho một hệ
thống tính toán lưới cũng có những rủi ro tiềm ẩn. Do đó, khi thiết kế một mô hình
bảo mật cho lưới cũng cần tính đến một vài phương án dự phòng. Ngoài ra, nên có
tường lửa, hệ thống phát hiện truy cập trái phép, các giải pháp phòng chống virus,…
Tính sẵn sàng: được hiểu một cách đơn giản là phần trăm thời gian mà hệ
thống đáp ứng trở lại các yêu cầu của thực thể tham gia lưới. Trong giai đoạn thiết
kế, cũng cần đưa ra mức độ sẵn sàng của hệ thống. Dựa trên mức độ này, người
thiết kế xác định được tài nguyên dư thừa cần có của hệ thống và dự phòng được
các phương thức xử lý sự cố hỏng hóc khi cần thiết.
Cuối cùng, dựa trên những kiến thức thu được từ việc nghiên cứu về tính
toán lưới và các công cụ liên quan đã được trình bày trong các chương trước. Đồng
thời với sự giúp đỡ của thầy hướng dẫn và các bạn trên trung tâm tính toán hiệu
năng cao. Tôi và các bạn trên trung tâm đã tiến hành cài đặt thử nghiệm một lưới
với mục đích hiểu sâu hơn các vấn đề đã nghiên cứu đồng thời tạo ra một lưới dùng
để phục vụ việc thử nghiệm các nghiên cứu tính toán lưới sau này.
4.2 Cài đặt một Grid
Phần này liệt kê các bước và giải thích ngắn gọn quá trình cài đặt hệ thống
cơ sở hạ tầng cho một lưới dựa trên bộ Globus Toolkit 4.
4.2.1 Cấu hình phần cứng của lưới
Topo lưới trên trung tâm được bố trí như hình 4.1, hệ thống bao gồm: Một
nút chính là Gridsv-172.16.14.130 và Năm nút tính toán là: Alpha-172.16.14.182;
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 96
Beta-172.16.14.144; Gama-172.16.14.133; Delta-172.16.14.175; Omega-
172.16.14.202. Tại thời điểm cài đặt thử nghiệm tất cả các máy tính này đều là
PenIII800, và được kết nối với nhau qua mạng LAN.
Hình 4-1 Mô hình lưới được triển khai thử nghiệm
4.2.2 Yêu cầu trước khi cài đặt
Các nút lưới là các máy tính PC Intel Pentium đã nối mạng với nhau qua Fast
Ethernet, đã cài Linux Fedora Core 3 và tất cả các gói phần mềm cần thiết [5] cho
việc cài đặt Globus Toolkit.
Để các nút trong mạng có thể nhìn và liên lạc được với nhau thì file
/etc/hosts trên tất cả các nút lưới phải có cùng nội dung và chứa đầy đủ 6 địa chỉ IP
cũng như tên của các máy trực tiếp tham gia lưới.
4.2.3 Cài đặt cho nút chính
Trước khi thực hiện cài đặt cho nút chính, ta tạo một user "globus", đây là
user thực hiện công việc quản trị Globus Toolkit. Phải đăng nhập vào user root (tạo
khi cài đặt Fedora Core 3) để thực hiện lệnh tạo user, vì chỉ root mới có quyền ghi
vào các file hệ thống.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 97
[root]#adduser -p "globus" -g users -d /home/globus globus
[root]#mkdir /usr/local/GlobusToolkit4.0.1
[root]#ln -s /usr/local/GlobusToolkit4.0.1 /usr/local/globus
[root]#chown globus:users /usr/local/GlobusToolkit4.0.1
Bước 1: Cài gói gt4.0.1-x86_fc_3-binary-installer bằng user globus vừa tạo:
[globus]$tar xzf /opt/gt4.0.1-x86_fc_3-binary-
installer.tar.gz
[globus]$export JAVA_HOME=/usr/local/java
[globus]$export ANT_HOME=/usr/local/ant
[globus]$export GLOBUS_LOCATION=/usr/local/globus
[globus]$cd gt4.0.1-x86_fc_3-binary-installer
[globus]$./configure --prefix=/usr/local/globus --with-
iodbc=/usr/local/lib
[globus]$make
[globus]$make install
Bước 2: Cấu hình an toàn bảo mật cho nút chính bằng user globus. Đây là bước tạo
simpleCA, ký chứng thực cho host:
[globus]$$GLOBUS_LOCATION/setup/globus/setup-simple-ca
lựa chọn các tuỳ chọn cho lệnh này như trong phụ lục A của [5].
Login vào user root, gõ lệnh:
[root]#$GLOBUS_LOCATION/setup/globus_simple_ca_ebb88ce5_setup
/setup-gsi
[root]#source $GLOBUS_LOCATION/etc/globus-user-env.sh
[root]#grid-cert-request -host `hostname`
Login vào user globus, gõ lệnh:
[globus]$grid-ca-sign -in /etc/grid-
security/hostcert_request.pem -out hostsigned.pem
Login vào user root, gõ lệnh:
[root]#cp ~globus/hostsigned.pem /etc/grid-
security/hostcert.pem
[root]#cp /etc/grid-security/hostcert.pem/etc/grid-
security/containercert.pem
[root]#cp /etc/grid-security/hostkey.pem/etc/grid-
security/containerkey.pem
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 98
[root]#chown globus:users container*.pem
Cấp và ký chứng thực người dùng "usergrid". Tạo người dùng có tên là
usergrid. Đây là người dùng sẽ sử dụng các dịch vụ của hệ thống Grid. Dùng lệnh
tạo user như với user globus, sau đó tạo tạo simpleCA, ký chứng thực cho host như
bước 2.
Các bước tiếp theo là cài đặt và cấu hình các dịch vụ, lệnh chi tiết trong [5].
Bước 3: Cài đặt dịch vụ GRAM
Login vào user root, gõ lệnh cấu hình sudo:
[root]#visudo
sau đó, thêm 2 dòng sau vào file etc/sudoers:
# Globus GRAM entries
Runas_Alias GRAM_USERS = usergrid
globus ALL=(GRAM_USERS)
NOPASSWD: /usr/local/globus/libexec/globus-gridmap-and-
execute -g /etc/grid-security/grid-mapfile
/usr/local/globus/libexec/globus-job-manager-script.pl *
globus ALL=(GRAM_USERS)
NOPASSWD: /usr/local/globus/libexec/globus-gridmap-and-
execute -g /etc/grid-security/grid-mapfile
/usr/local/globus/libexec/globus-gram-local-proxy-tool *
Bước 4: Cài đặt GridFTP
Login vào user root, dùng bất kỳ trình soạn thảo dạng console nào của
Fedora để tạo file /etc/xinetd.d/gridftp có nội dung như sau:
service gsiftp
{
instances = 100
socket_type = stream
wait = no
user = root
env += GLOBUS_LOCATION=/usr/local/globus
env += LD_LIBRARY_PATH=/usr/local/globus/lib
server = /usr/local/globus/sbin/globus-gridftp-
server
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 99
server_args = -i
log_on_success+= DURATION
nice = 10
disable = no
}
Sau đó gõ lệnh:
[root]#echo "gsiftp 2811/tcp" >> /etc/services
[root]#/etc/init.d/xinetd reload
[root]#netstat -an | grep 2811
Bước 5: Khởi động GT container tự động khi boot máy
Login vào user globus, tạo file $GLOBUS_LOCATION/bin/start-stop có nội
dung như sau:
#!/bin/sh
set –e
export GLOBUS_LOCATION=/usr/local/globus
export JAVA_HOME=/usr/local/java
export ANT_HOME=/usr/local/ant
export GLOBUS_OPTIONS="-Xms256M -Xmx512M"
. $GLOBUS_LOCATION/etc/globus-user-env.sh
cd $GLOBUS_LOCATION
case "$1" in
start)
$GLOBUS_LOCATION/sbin/globus-start-container-
detached -p 8443
;;
stop)
$GLOBUS_LOCATION/sbin/globus-stop-container-
detached
;;
*)
echo "Usage: globus {start|stop}" >&2
exit 1
;;
esac
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 100
exit 0
[globus]$chmod +x $GLOBUS_LOCATION/bin/start-stop
Login vào user root, tạo file /etc/init.d/globus có nội dung sau:
#!/bin/sh –e
## BEGIN chkconfig header
# chkconfig: 345 80 30
# processname: /usr/local/globus/bin/start-stop
# description: sysv init script to start GT container
## END chkconfig header
case "$1" in
start)
su - globus /usr/local/globus/bin/start-stop start
;;
stop)
su - globus /usr/local/globus/bin/start-stop stop
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}n" >&2
;;
esac
exit 0
[root]#755 /etc/init.d/globus
[root]#chkconfig --add globus
[root]#service globus start
Bước 6: Cấu hình RFT. Cấu hình hệ quản trị cơ sở dữ liệu PostgresSQL
Thêm dòng "host rftDatabase "globus" "172.16.14.130" 255.255.255.0
trust" vào tập tin /var/lib/pgsql/data/pg_hba.conf, trong đó 172.16.14.130 là địa chỉ
IP của nút ta đang cài đặt.
[root]#/etc/init.d/postgresql restart
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 101
[root]#su postgres -c "createuser -P globus"
Tạo cơ sở dữ liệu ban đầu cho RFT
[globus]$createdb rftDatabase
[globus]$psql -d rftDatabase -f
[globus]$$GLOBUS_LOCATION/share/globus_wsrf_rft/rft_schema.sq
l
Thay đổi mật khẩu trong file
$GLOBUS_LOCATION/etc/globus_wsrf_rft/jndi-config.xml thành "globus"
4.2.4 Cài đặt các nút tính toán
Phần này trình bày các bước tiếp theo để cài đặt cơ sở hạ tầng Grid lên các
nút tính toán. Cài đặt này phải thực hiện lặp trên tất cả các nút tính toán có trong
lưới. Trên các nút tính toán việc cài đặt như tạo user hay cài đặt GT4, GridFTP,
GT container, GRAM và RFT đều thực hiện tương tự như với nút server. Riêng
cài đặt GSI thì có chút khác biệt sau:
Dùng user globus, sao chép file globus_simple_ca_ebb88ce5_setup-
0.18.tar.gz trong thư mục ~globus/.globus/simpleCA trên nút chính vào thư mục
home của user globus trên nút tính toán.
[globus]$export GLOBUS_LOCATION=/usr/local/globus
[globus]$$GLOBUS_LOCATION/sbin/gpt-build
globus_simple_ca_ebb88ce5_setup-0.18.tar.gz
[globus]$$GLOBUS_LOCATION/sbin/gpt-postinstall
Login vào user root, gõ lệnh:
[root]#export GLOBUS_LOCATION=/usr/local/globus
[root]#source $GLOBUS_LOCATION/etc/globus-user-env.sh
[root]#$GLOBUS_LOCATION/setup/globus_simple_ca_ebb88ce5_setup
/setup-gsi
Tạo yêu cầu cấp chứng thực và ký chứng thực host cho nút tính toán bằng
user root:
[root]#grid-cert-request -host `hostname`
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 102
copy tập tin /etc/grid-security/hostcert_request.pem tới người quản trị globus trên
nút CA: globus@gridsv.it.bkvn vào thư mục ~globus/.globus/hosts/,
trong đó (: tên của nút tính toán xin cấp chứng thực)
Người quản trị globus@gridsv.it.bk.vn sẽ ký chứng thực bằng lệnh
grid-ca-sign -in.globus/hosts//hostcert_request.pem
-out hostcert.pem
sau đó chuyển tập tin hostcert.pem này vào lại thư mục /etc/grid-security trên nút
tính toán bằng quyền root.
[root]#cp ~globus/hostsigned.pem /etc/grid-
security/hostcert.pem
[root]#cp /etc/grid-security/hostcert.pem/etc/grid-
security/containercert.pem
[root]#cp /etc/grid-security/hostkey.pem/etc/grid-
security/containerkey.pem
[root]#chown globus:users container*.pem
[root]#ls -l /etc/grid-security/*.pem
[root]#echo ""/O=Grid/OU=GlobusTest/OU=simpleCA-
gridca.math.hcmuns.edu.vn/OU=math.hcmuns.edu.vn/CN=igrid"
igrid" >> /etc/grid-security/grid-mapfile
Tạo yêu cầu cấp chứng thực và ký chứng thực người dùng usergrid trên nút
tính toán. Bước này chỉ cần thực hiện nếu cho phép người dùng usergrid login vào
nút tính toán để sử dụng lưới.
4.2.5 Đồng bộ thời gian giữa các nút trong lưới
Đây là bước khá quan trọng bởi các chứng thực đều chỉ có hiệu lực trong
một khoảng thời gian. Yêu cầu tất cả các nút đều phảicó gói ntp-4.0.0 trở.
¾ Cài đặt NTP server trên nút chính
Đầu tiên thay đổi nội dung tập tin /etc/ntp.conf thành:
restrict default noserve
restrict 127.0.0.1
restrict 172.16.14.0 mask 255.255.255.0
server 0.pool.ntp.org
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 103
server 1.pool.ntp.org
server 2.pool.ntp.org
fudge 172.16.14.0 stratum 10
driftfile /etc/ntp/drift
broadcastdelay 0.008
authenticate no
Cập nhật ngày giờ cho nút chính:
[root]#ntpdate -u 0.pool.ntp.org
(lặp lại lệnh này cho đến khi giờ của nút chính là chính xác)
Khởi động NTP server:
[root]#chkconfig ntpd on
[root]#/etc/init.d/ntpd
Cập nhật trạng thái cho NTP server:
[root]#ptrace 0.pool.ntp.org
[root]#ntptrace 1.pool.ntp.org
[root]#ntptrace 2.pool.ntp.org
[root]#ntpq –p
[root]#ntptrace localhost
¾ Cài đặt NTP client trên các nút tính toán
[root]#ntpdate -b 172.16.14.130
(Chạy nhiều lần lệnh này cho đến khi thời gian của hệ thống là chính xác)
[root]#chkconfig crond on
Thêm tập tin /etc/cron.hourly/ntp.client nội dung như sau:
#!/bin/sh
# Update system time every hour from time server:
172.29.3.131 ntpdate -b 172.16.14.130
[root]#chmod +x /etc/cron.hourly/ntp.client
[root]#/etc/init.d/crond reload
4.2.6 Cấu hình các dịch vụ mức lưới
Sau khi đã cài đặt xong hết các gói cần thiết, ta tiến hành cấu hình các dịch
vụ IndexService, WebMDS, MyProxy server. Thông tin và lệnh cấu hình được thực
hiện như trong [5].
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 104
¾ Cấu hình IndexService
Ta sẽ cấu hình để các nút tính toán đăng ký dịch vụ Index với nút chính
172.29.3.130, bằng cách thêm dòng:
https://gridca.math.hcmuns.edu.vn:8443/wsrf/service
s/DefaultIndexService
vào tập tin $GLOBUS_LOCATION/etc/globus_wsrf_mds_index/hierarchy.xml, sau
đó khởi động lại GT container:
[globus]$globus-stop-container-detached
[globus]$sleep 5
[globus]$globus-start-container-detached
¾ Cấu hình WebMDS
Đây là ứng dụng Web cho phép hiển thị các thông tin MDS trong một lưới.
Chỉ cài đặt WebMDS trên nút chính bằng gói Tomcat jakarta-tomcat-4.1.31.tar.gz:
[root]#tar zxf /opt/jakarta-tomcat-4.1.31.tar.gz
[root]#ln -s jakarta-tomcat-4.1.31 tomcat
[root]#echo "export CATALINA_HOME=/usr/local/tomcat"
>>/etc/profile
[root]#echo "export PATH=$CATALINA_HOME/bin:$PATH" >>
/etc/profile
¾ Cấu hình và triển khai WebMDS vào Tomcat container
Sửa tham số "endpoint" trong file
$GLOBUS_LOCATION/lib/webmds/conf/indexinfo thành:
"https://172.29.3.130:8443/wsrf/services/DefaultIndexService"
[root]#$GLOBUS_LOCATION/lib/webmds/bin/webmds-create-context-
file
$CATALINA_HOME/conf/Catalina/localhost
[root]#$CATALINA_HOME/bin/startup.sh
¾ Cài đặt và cấu hình MyProxy server trên nút chính
Dùng để quản lý các chứng thực người dùng tại các nút khác trong lưới.
[root]# cp $GLOBUS_LOCATION/etc/myproxy-server.config /etc
Sau đó, soạn lại tập tin /etc/myproxy-server.config như [5].
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 105
4.3 Kết nối một Cluster vào Grid
Sau khi đã có một lưới, thực hiện thiết lập các mạng con, mỗi mạng con
được coi là một hệ thống tính toán song song phân cụm (Cluster). Thực hiện kết nối
các mạng con này vào lưới.
4.3.1 Cấu hình phần cứng
Trên trung tâm triển khai 2 cluster để kết nối vào hệ thống lưới đã được thiết
lập trong phần trước với topo mạng như hình dưới:
Hình 4-2 Topo mạng triển khai kết nối Cluster vào lưới
Đợt cài đặt thử nghiệm này sử dụng hai cluster do một nhóm sinh viên thực
tập trên trung tâm thiết lập trước đó, cluster thứ nhất gồm 4 máy tính có địa chỉ IP
từ 172.17.14.1 đến 172.17.14.4 đã được cài đặt Globus Toolkits,
GlobusPbsScheduler, PBS và MPICH. Sử dụng máy có địa chỉ 172.17.14.1 làm
máy chủ, đồng thời nó có một địa chỉ IP dùng để giao tiếp với bên ngoài là
172.16.14.150. Cluster thứ hai gồm 6 máy tính được thiết lập địa chỉ IP từ
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 106
172.17.14.10 đến 172.17.14.15, trên các máy này đã cài đặt Globus Toolkits,
GlobusPbsScheduler, PBS và MPICH. Ở cluster thứ hai, sử dụng máy có địa chỉ
172.17.14.10 làm máy chủ, máy chủ này có một địa chỉ IP dùng để giao tiếp với bên
ngoài là 172.16.14.152.
Bên cạnh các cluster thêm mới, hệ thống lưới tính toán vẫn giữ nguyên toàn
bộ các máy đơn đã thiết lập ở mục trước.
4.3.2 Cấu hình cluster-based PBS
Công việc cấu hình cluster-based PBS được thực hiện trên nút chủ của
cluster. PBS đã cung cấp cho chúng ta môt lệnh quản lý cấu hình PBS dùng cho
việc cấu hình trên giao diện dòng lệnh đó là lệnh qmgr.
¾ Các lệnh cấu hình PBS
Các lệnh cấu hình cho PBS thường có cấu trúc như sau:
command server [names] [attr OP value[,...]]
command queue [names] [attr OP value[,...]]
command node [names] [attr OP value[,...]]
Ở đậy “command” thực hiện một tác động lên các đối tượng “server”,
“queue”, “node”. Các lệnh này bao gồm [14]:
1. Active: dùng để kích hoạt đối tượng
2. Create: tạo một đối tượng mới như hàng đợi hoặc nút
3. Delete: xóa một đối tượng hàng đợi hoặc nút
4. Help: hiển thị thông tin chi tiết của lệnh
5. List: liệt kê các thuộc tính và giá trị của đối tượng
6. Print: hiển thị các hàng đợi đã được thiết lập và các thuộc tính của server
7. Set: định nghĩa hoặc thêm các thuộc tính cho đối tượng, ngược lại Unset
¾ Cấu hình cho đối tượng Server
Sử dụng các thuộc tính của lệnh cấu hình PBS [14] như:
1. scheduling: kích hoạt hoặc tắt bộ lập lịch
2. max_user_run: số công việc tối đa một người có thể thực hiện cùng lúc
3. acl_host_enable: cho phép server sử dụng danh dách máy trong acl_hosts
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 107
4. acl_hosts: danh sách các máy có thể yêu cầu từ server
5. default_queue: hàng đợi mặc định dùng khi ko được chỉ rõ tên
6. log_events: độ dài xâu kỹ tự sẽ ghi lại các sự kiện xảy ra trong hệ thống
7. mail_from: định danh của người dùng mà server sẽ dùng để gửi thư
8. queue_other_job: cho phép người dùng không sở hữu công việc nhưng
xem được tình trạng của nó
9. resources_default: tập các giá trị mặc định
10. scheduler_interation: khoảng thời gian giữa các lần lập lịch
11. default_node: nút tính toán mặc định dùng khi không chỉ rõ tên nút
để cấu hình cho server.
Toàn bộ việc cấu hình cho đối tượng Server được thực hiện bằng các lệnh
như trong shell script ở [17].
¾ Cấu hình đối tượng hàng đợi (queue)
Trong PBS có hai kiểu hàng đợi khác nhau [14]: hàng đợi định tuyến
(routing) và hàng đợi thực thi (execution). Một hàng đợi định tuyến dùng để chuyển
công việc từ hàng đợi này sang một hàng đợi khác trong PBS Server. Còn hàng đợi
thực thi dùng để thực hiện công việc, công việc tồn tại trong nó suốt quá trình chạy.
Thông thường một PBS Server muốn hoạt động tốt phải có cả hai loại hàng đợi này.
Các thuộc tính của hàng đợi chia thành ba nhóm:
- Nhóm thuộc tính chỉ áp dụng với hàng đợi thực thi
- Nhóm thuộc tính chỉ áp dụng với hàng đợi định tuyến
- Nhóm thuộc tính áp dụng với cả hai kiểu hàng đợi
Các thuộc tính của hàng đợi định tuyến
1. queue_type_route: là kiểu hàng đợi định tuyến, dùng để phân công việc
2. max_running: số công việc tối đa có thể năm trong hàng đợi cùng lúc
3. route_destination: các hàng đợi mà công việc sẽ được chuyển đến
4. enable: cho phép nhận/không nhận công việc mới
5. started: công việc được lập lịch sẽ được thực thi từ hàng đợi này
Các thuộc tính của hàng đợi thực thi
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 108
1. queue_type_excecute: kiểu hàng đợi thực thi
2. priority: mức độ ưu tiên của hàng đợi này so với các hàng đợi .
3. max_running: số công việc tối đa đồng thời có trong hàng đợi
4. resource_max: lượng tài nguyên lớn nhất có thể được yêu cầu cho một
công việc, ngược lại là resource_min
5. resource_default: tài nguyên mặc định
6. enable: cho phép nhận/không nhận công việc mới
7. started: công việc được lập lịch sẽ được thực thi từ hàng đợi này
Việc cấu hình đối tượng hàng đợi định tuyến và hàng đợi thực thi được thực
hiện thông qua các lệnh trong shell script ở [17].
Để tạo ra các loại hàng đợi khác nhau ra chỉ cần thay đổi các giá trị nhập cho
các thuộc tính của lệnh trong shell script dùng để tạo một hàng đợi thực thi có tên là
small, mức độ ưu tiên 100, dùng để thực hiện các công việc có thời gian yêu cầu ít
hơn 20 phút.
# Create and define queue small
Qmgr: create queue small
Qmgr: set queue small queue_type = Execution
Qmgr: set queue small Priority = 100
Qmgr: set queue small max_running = 10
Qmgr: set queue small resources_max.cput = 00:20:00
Qmgr: set queue small resources_default.cput = 00:20:00
Qmgr: set queue small enabled = True
Qmgr: set queue small started = True
Tất cả các shell script ở [17] đã được dùng và kiểm thử trên trung tâm tính
toán hiệu năng cao, và cho kết quả khá tốt.
4.3.3 Cấu hình lưới dựa trên GT
Trước khi thực hiện cấu hình cho lưới ta cần phải thực hiện cài đặt Globus
Toolkits 4.0.1 trên nút chủ của cluster, cài đặt gói phần mềm scheduler-pbs-3.2-
src_bundle.tar.gz. Sau đây sẽ là một số bước cấu hình cần thiết để thiết lập PBS là
trình quản lý công việc cho lưới.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 109
% gpt-postinstall
lệnh này thực hiện khởi tạo các cấu hình mặc định cho lưới.
$GLOBUS_LOCATION/setup/globus/setup-mmjfs-pbs
lệnh này thực hiện cấu hình để thêm dịch vụ MasterPbsManagedJobFactoryService
vào trong các dịch vụ của Globus Toolkit.
$GLOBUS_LOCATION/setup/globus/setup-mjs-pbs
lệnh này thực hiện cấu hình để thêm dịch vụ PbsManagedJobFactoryService vào
trong các dịch vụ của Globus Toolkit.
$GLOBUS_LOCATION/setup/globus/setup-pbs-provider
lệnh này thực hiện các cấu hình để thành phần RIPS (Resource Information
Provider) trong lưới làm việc với PBS, RIPS nhận các thông tin trả về từ
PBS_Server và cung cấp cho trình quản lý công việc.
$GLOBUS_LOCATION/setup/globus/setup-globus-job-manager-pbs --
cpu-per-node=1
lệnh này thiết lập số lượng các bộ vi xử lý (CPU) trên một nút đơn trong cluster,
thông số này phải phù hợp với tài nguyên tương ứng trong cluster.
$GLOBUS_LOCATION/setup/globus/setup-globus-job-manager-pbs --
remote-shell=rsh
lệnh này thực hiện việc chuyển đổi remote-shell mặc định thành rsh, thông thường
các hệ thống tính toán song song phân cụm thường dùng rsh để truy cập các tài
nguyên trong cluster.
$GLOBUS_LOCATION/setup/globus/setup-globus-job-manager-pbs –
validate-queues=yes
lệnh này thực hiện kiểm tra hàng đợi tương ứng trong PBS phù với yêu cầu hay
không.
4.4 Kết chương
Trong chương 4, luận văn đã giới thiệu các bước cần thực hiện trong việc lập
kế hoạch triển khai một lưới. Đồng thời cũng đưa ra một mô hình lưới thử nghiệm,
bao gồm cả các hướng dẫn cài đặt. Đây là bước áp dụng thực tế cho phần lý thuyết
được nghiên cứu trong 3 chương đầu tiên.
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 110
KẾT LUẬN VÀ KIẾN NGHỊ
Kết quả thu được
Trong quá trình tìm hiểu về tính toán lưới và thực hiện cài đặt một lưới thử
nghiệm, luận văn đã thu được các kết quả sau:
Bước đầu làm chủ công nghệ tính toán lưới còn rất mới ở nước ta
Nắm bắt được bộ công cụ Globus Toolkit và vận dụng vào cài đặt thực tế
Triển khai hệ thống lưới thử nghiệm
Biết cách kết nối cluster vào lưới, nhằm tăng sức mạnh tính toán cho lưới
Hướng phát triển
Có thể nói việc phát triển môi trường tính toán Mạng lưới là một hướng
nghiên cứu công nghệ có triển vọng rất lớn trong tương lai, có những ứng dụng lớn
lao để có thể tận dụng hết được nguồn lực tài nguyên rất đa dạng và phong phú hiện
nay. Các vấn đề mà Grid đặt ra đã và đang được cộng đồng thế giới giải quyết. Các
thành quả mà Gird Computing đem lại đã giúp giai quyết được nhiều bài toán mà
trước đây không thể giải quyết bằng kỹ thuật toán song song.
Tuy nhiên cũng có một số bài toán mà công nghệ Grid chưa thể thể giải
quyết được. Dù sao việc tận dụng được nguồn tài nguyên rãnh rỗi để tính tóan các
bài tóan đòi hỏi lượng tính tóan và tài nguyên cao luôn là một thế mạnh để phát
triển tốt môi trường tính toán mạng lưới này.
Dựa trên kiến thức đã thu được trong quá trình làm luận văn. Trong thời gian
tới, việc nghiên cứu tiếp về tính toán lưới sẽ đi theo một trong các hướng phát triển
sau:
Nghiên cứu hạ tầng truyền thông trong môi trường lưới, tìm hiểu đưa ra các
giải pháp để kết nối các nút lưới với nhau trong điều kiện hạ tầng truyền
thông chưa tốt như ở Việt Nam.
Về mặt lập trình thì tiến hành xây dựng các môdun riêng như: quản trị người
dùng lưới, môi giới tài nguyên, lập lịch kinh tế, ….
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 111
TÀI LIỆU THAM KHẢO
Sách tiếng Anh:
[1] Ian Foster, Carl Kesselman (eds) - The Grid: Blueprint for a New Computing
Infrastructure, 1st edition, Morgan Kaufmann Publishers, San Francisco,
USA (1 November 1998), ISBN: 1558604758.
[2] Daniel Minoli - A Networking Approach to Grid Computing
[3] Ahmar Abbas - Grid Computing: A Practical Guide to Technology and
Applications
[4] Fran Berman, Anthony J.G.Hey, Geoffrey C.Fox – Grid computing: Make
the Global Infrastructure a Reality
[5] Globus Books - Globus Toolkit 4 Admin Guide
[6] Globus Books - A Globus Primer 0.6 (2005)
[7] IBM Red Books – Globus Toolkit 3.0 Quick Start
[8] Joshy Joseph, Craig Fellenstein - Grid Computing
[9] IBM Red Books – Fundamentals of Grid Computing.
[10] IBM Red Books – Introduction to Grid Computing with Globus Toolkit
[11] The Globus Alliance - How to Build a Service using GT4
[12] Sun BluePrints Online - The Sun Infrastructure Solution for Grid Computing
[13] Sun BluePrints Online - Introduction to the Cluster Grid
[14] Proytable Batch System - OpenPBS Release 2.3 - Administrator
[15] James Patton Jones - PBS Pro 5.0 - Administrator Guide
[16] Jarek Nabryski, Jenifer M.Schopf, Jan Weglars - Grid Resource Management
Sách tiếng Việt:
[17] Đồ án đại học - Kết nối Globus và PBS - Nguyễn Đức Mạnh khoá K45
trường ĐHBKHN
Luận văn thạc sĩ khoa học Nghiên cứu tổng quan về tính toán lưới và cài đặt mô hình thử nghiệm
Nguyễn Thị Kim Tuyến – Lớp Cao học CNTT –Khoá 2004-2006 - Đại học BKHN
Trang 112
Trang Web:
[18] Workspace Admin Guide:
index.html#installing-workspace-service
[19] SimpleCA:
[20] Website Globus Toolkits
[21] Globus Toolkit Tutorial:
[22]
[23]
[24]
start.html#q-container
[25] ML. Levisetto - About PBS and the Grid:
[26] Quick Tutorial for PBS:
[27] PBS Userguide:
[28]
[29] J. Postel, J. Reynolds, “File Transfer Protocol”, tài nguyên sẵn có trên web
tại địa chỉ
[30]
Các file đính kèm theo tài liệu này:
- 000000208327R.pdf