Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
0,99 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG BÁO CÁO THU HỌACH MÔN HỌC PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC ĐỀ TÀI: NHỮNG NGUYÊN LÝ SÁNG TẠO TRONG ỨNG DỤNG CÂN BẰNG TẢI WEB (CLUSTER – SYNCHRONIZATION) HỌC VIÊN : ĐÀM THANH LONG MÃ SỐ : CH1101020 LỚP : CAO HỌC K6 GV HƯỚNG DẪN: GS.TSKH HOÀNG KIẾM TP.HCM 2012 PHẦN I. MỞ ĐẦU Sự phát triển nhanh chóng của mạng Internet và công nghệ Web cho phép các doanh nghiệp khai thác các công nghệ tiên tiến để triển khai những mô hình kinh doanh mới, tăng khả năng cạnh tranh, quản lý chặt chẽ mọi nguồn lực của doanh nghiệp. Đây chính là cơ hội và cũng là thách thức cho các doanh nghiệp nếu như họ muốn thành công trong một thị trường cạnh tranh ác liệt mang tính toàn cầu hiện nay, sự phức tạp của môi trường kinh doanh buộc các doanh nghiệp cần phải luôn chủ động trong các tình huống. Họ cần phải tự động hóa các và cung cấp thông tin đầy đủ, nhanh chóng và chính xác đến với khách hàng và đối tác hơn nữa đây cũng chính là những thách thức mới và cũng là cơ hội cho các doanh nghiệp tận dụng tối ứu hóa sự phát triển công nghệ vào tình hình sản xuất, kinh doanh cho từng doanh nghiệp. Ứng dụng Web đã làm thay đổi cả thế giới khi xuất hiện vào đầu những năm 90 của thế kỷ trước, nó đã và đang đóng góp vào công việc truyền bá thông tin hữu hiệu nhất, ngày nay mọi giao tiếp thông qua web đã trở thành phổ biến bên cạnh đó số lượng người dùng web ngày càng cao, người dùng đang phải chấp nhận với sự quá tải thông tin và nghẽn mạch ngưng trệ hệ thống, cùng lúc này sự xuất hiện những công nghệ mới ra đời nhằm hổ trợ đảm bảo tính sẳn sàng của hệ thống, có nhiều công nghệ mới được xuất hiện vd: web 2.0, Ajax, Load blandcing, RAID, Điện toán đám mây, portal…nhưng trong phần nghiên cứu này người viết giới thiệu và vận dụng những nguyên lý sáng tạo trong phương pháp nghiên cứu khoa học trong việc ứng dụng công nghệ web cluster và web synchronization dựa trên phát triển mã nguồn mở. PHẦN II. CÔNG NGHỆ CLUSTER VÀ SYNCHRONIZATION Trong thời đại bùng nổ của công nghệ thông tin hiện nay, máy tính đóng vai trò ngày càng quan trọng hơn trong hoạt động của các doanh nghiệp, tổ chức cũng như các cơ quan nhà nước thậm chí ở một số đơn vị, chẳng hạn như các công ty lớn hoặc các tập đoàn, hệ thống máy tính có thể ví như hệ thần kinh điều khiển hoạt động của toàn doanh nghiệp. Sự ngừng hoạt động của hệ thống máy tính trong những cơ quan này có thể làm tê liệt các hoạt động chính của đơn vị và thiệt hại khó có thể lường trước được. Mọi người đều biết các máy chủ là trung tâm của của hệ thống mạng máy tính, nếu hệ thống máy chủ hỏng, hoạt động của hệ thống sẽ bị ngưng trệ điều đáng tiếc là dù các hãng sản xuất hoặc những nhà cung cấp dịch vụ đã cố gắng làm mọi cách để nâng cao chất lượng của thiết bị, nhưng hỏng hóc đối với các thiết bị trong hệ thống máy tính nói chung và các máy chủ nói riêng là điều không thể tránh khỏi. Do vậy vấn đề đặt ra là cần có một giải pháp để đảm bảo cho hệ thống vẫn hoạt động tốt ngay cả khi có sự cố xảy ra đối với hệ thống máy chủ và công nghệ cluster (cụm) đã được ra đời nhằm đáp ứng cho bài toán hệ thống vẩn hoạt động khi gặp sự cố. Trong phần nghiên cứu này người viết giới thiệu nguyên lý và phân tích một số giải pháp cluster đang được áp dụng cho các hệ thống máy tính lớn và mô phỏng trên nền tảng ứng dụng web với hy vọng có thể giúp người đọc có thể hiểu rõ hơn về công nghệ Cluster (cụm) và Synchronization (đồng bộ). II.1/ Tổng quan về Cluster. Cluster là một kiến trúc nhằm đảm bảo nâng cao khả năng sẵn sàng cho các hệ thống máy tính. Cluster cho phép sử dụng nhiều máy chủ kết hợp với nhau tạo thành một cụm có khả năng chịu đựng hay chấp nhận sai sót (fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ thống máy tính. Cluster là một hệ thống bao gồm nhiều máy chủ được kết nối với nhau theo dạng song song hay phân tán và được sử dụng như một tài nguyên thống nhất. Nếu một máy chủ ngừng hoạt động do bị sự cố hoặc để nâng cấp, bảo trì thì toàn bộ công việc mà máy chủ này đảm nhận sẽ được tự động chuyển sang cho một máy chủ khác (trong cùng một cluster) mà không làm cho hoạt động của hệ thống bị ngắt, gián đoạn hay trì trệ hệ thống. Quá trình này gọi là “fail-over”; và việc phục hồi tài nguyên của một máy chủ trong hệ thống (cluster) được gọi là “fail-back”. Việc thiết kế và cài đặt các cluster cần thoả mãn các yêu cầu sau: Yêu cầu về tính sẵn sàng cao (High availability). Các tài nguyên mạng phải luôn sẵn sàng trong khả năng cao nhất để cung cấp và phục vụ các người dùng cuối và giảm thiểu sự ngưng hoạt động hệ thống ngoài ý muốn. Yêu cầu về độ tin cậy cao (reliability). Độ tin cậy cao của cluster được hiểu là khả năng giảm thiểu tần số xảy ra các sự cố, và nâng cao khả năng chịu đựng sai sót của hệ thống. Yêu cầu về khả năng mở rộng được (scalability). Hệ thống phải có khả năng dễ dàng cho việc nâng cấp, mở rộng trong tương lai. Việc nâng cấp mở rộng bao hàm cả việc thêm các thiết bị, máy tính vào hệ thống để nâng cao chất lượng dịch vụ, cũng như việc thêm số lượng người dùng, thêm ứng dụng, dịch vụ và thêm các tài nguyên mạng khác. Ba yêu cầu trên được gọi tắt là RAS (Reliability-Availability-Scalability), những hệ thống đáp ứng được ba yêu cầu trên được gọi là hệ thống RAS. II.1.1/ Cấu trúc của Cluster. Cluster được tổ chức thành các nhóm gọi là các farm hay pack. Trong hầu hết các trường hợp, các dịch vụ ở tầng trước và giữa (front-end and middle- tiers services) được tổ chức thành các farm sử dụng các clone, trong khi đó các dịch vụ tầng sau (back-end services) được tổ chức thành các pack. Các khái niệm farm, pack và clone trong hệ thống cluster sẽ được làm rõ như sau. Cluster Farm là một nhóm các máy chủ chạy các dịch vụ giống nhau nhưng không dùng chung cơ sở dữ liệu được gọi là farm (trang trại) bởi vì chúng xử lý bất cứ yêu cầu nào gửi đến cho chúng bằng các bản sao cơ sở dữ liệu (tài nguyên) giống hệt nhau được lưu giữ cục bộ, chứ không dùng chung một bản cơ sở dữ liệu, cũng bởi tính chất này nên các máy chủ thành viên của farm làm việc độc lập và chúng được gọi là clone (clone là máy tính được thiết kế để mô phỏng chức năng của máy tính khác). Cluster Pack là một nhóm các máy chủ hoạt động cùng với nhau và chia sẻ với nhau các phần của cơ sở dữ liệu được gọi là pack (khối) vì sự hoạt động của các máy chủ thành viên của pack có liên hệ chặt chẽ với nhau và chúng làm việc theo một phương thức thống nhất để quản lý và duy trì các dịch vụ. II.1.2/ Chế độ hoạt động của Cluster. Mỗi máy chủ trong cluster được gọi là một nút (cluster node) và có thể được thiết lập ở chế độ chủ động (active) hay thụ động (passive), khi một nút (node) ở chế độ chủ động, nó sẽ chủ động xử lý các yêu cầu khi một nút (node) là thụ động, nó sẽ nằm ở chế độ dự phòng nóng (stanby) chờ để sẵn sàng thay thế cho một nút (node) khác nếu bị hỏng, nguyên lý hoạt động của Cluster có thể biểu diễn như trong hình 1. Trong một cluster có nhiều nút (node) có thể kết hợp cả nút (node) chủ động và nút (node) thụ động. Trong những mô hình loại này việc quyết định một nút (node) được cấu hình là chủ động hay thụ động rất quan trọng, để hiểu lý do tại sao hãy xem xét các tình huống sau: Nếu một nút (node) chủ động bị sự cố và có một nút thụ động đang sẵn sàng, các ứng dụng và dịch vụ đang chạy trên nút (node) hỏng có thể lập tức được chuyển sang nút (node) thụ động. Vì máy chủ đóng vai trò nút (node) thụ động hiện tại chưa chạy ứng dụng hay dịch vụ gì cả nên nó có thể gánh toàn bộ công việc của máy chủ hỏng mà không ảnh hưởng gì đến các ứng dụng và dịch vụ cung cấp cho người dùng cuối (end user) ngầm định rằng các các máy chủ trong cluster có cấu trúc phần cứng giống nhau. Nếu tất cả các máy chủ trong cluster là chủ động và có một nút bị sự cố, các ứng dụng và dịch vụ đang chạy trên máy chủ hỏng sẽ phải chuyển sang một máy chủ khác cũng đóng vai trò nút (node) chủ động, vì là nút (node) chủ động nên bình thường máy chủ này cũng phải đảm nhận một số ứng dụng hay dịch vụ gì đó khi có sự cố xảy ra thì nó sẽ phải gánh thêm công việc của máy chủ hỏng. Do vậy để đảm bảo hệ thống hoạt động bình thường kể cả khi có sự cố thì máy chủ trong cluster cần phải có cấu hình dư ra đủ để có thể gánh thêm khối lượng công việc của máy chủ khác khi cần. Trong cấu trúc cluster mà mỗi nút (node) chủ động được dự phòng bởi một nút (node) thụ động các máy chủ cần có cấu hình sao cho với khối lượng công việc trung bình chúng sử dụng hết khoảng 50% CPU và dung lượng bộ nhớ. Trong cấu trúc cluster mà số nút (node) chủ động nhiều hơn số nút (node) bị động, các máy chủ cần có cấu hình tài nguyên CPU và bộ nhớ mạnh hơn nữa để có thể xử lý được khối lượng công việc cần thiết khi một nút nào đó bị hỏng. Các nút (node) trong một cluster thường là một bộ phận của cùng một vùng (domain) và có thể được cấu hình là máy điều khiển vùng (domain controllers) hay máy chủ thành viên. Lý tưởng nhất là mỗi cluster nhiều nút (node) có ít nhất hai nút (node) làm máy điều khiển vùng và đảm nhiệm việc failover đối với những dịch vụ vùng thiết yếu. Nếu không như vậy thì khả năng sẵn sàng của các tài nguyên trên cluster sẽ bị phụ thuộc vào khả năng sẵn sàng của các máy điều khiển trong vùng (domain). II.2/ Tổng quan về Synchronization (đồng bộ hóa). Mô hình đồng bộ hóa được đưa ra nhằm đáp ứng được các nhu cầu ngày càng gia tăng trong việc truy xuất các ứng dụng có tính chất quan trọng và các ứng dụng này phải có khả năng chịu lỗi cao, luôn đáp ứng được tính sẳn sàng. Trong máy tính đơn vị xử lý nhỏ nhất là thread, xử lý request một cách đồng bộ cứ nghĩ khi có một connection đến, web server phải tốn một thread để xử lý. Khi xử lí chưa kết thúc (ví dụ truy xuất DB, đọc tập tin, lấy dữ liệu từ server từ xa của Amazone v.v.) thì thread này bị ngậm. Vấn đề là hệ điều hành bình thường trên máy chủ bình thường hiện nay chỉ tạo được tối đa khoảng 4000 thread hơn nữa thì máy chủ sẽ bị đơ. Xử lí kiểu này thì máy chủ chỉ giữ được cùng lúc khoảng 4000 connection khi connection (khách hàng) thứ 4001 trở lên đến hoặc là họ bị đá văng ra ngoài (nếu server được cấu hình để chỉ xử lí cùng lúc 4000 connection), hoặc là server bị dìm đến chết). Đây không phải là vấn đề lớn nếu như một trang web 1.0, với đặc điểm là máy chủ chỉ cần giữ mỗi connection tối đa khoảng vài trăm ms là cùng đây là vấn đề lớn nếu như trang web 2.0. Ví dụ nếu dùng server side push (Comet, WebSocket) thì số connection (kết nối) phải giữ cùng lúc sẽ tăng lên vài ngàn vài chục ngàn thậm chí cả triệu (như tính năng chat của FaceBook) thời gian phải giữ connection (kết nối) cũng không tính bằng ms nữa mà tính bằng phút. Như vậy vấn đề đặt ra là tìm một giải pháp để đáp ứng nhu cầu truy cập web ngày càng tăng ngoài việc trang bị cấu hình máy chủ (siêu khủng) người ta đã nghĩ tới vấn đề tách nhiều máy chủ web [đã trình bày phần cluster] nhưng vấn đề đặt ra làm sao để các máy chủ này tự động đồng bộ dữ liệu khi có sự thay đổi lúc này khái niệm synchronization (đồng bộ hóa) ra đời để đáp ứng nhu cầu cân bằng tải dữ liệu cho các ứng dụng. Ở đây có nhiều mô hình trong việc đồng bộ hóa dữ liệu nhưng người viết xin giới thiệu hai mô hình đồng bộ hóa dữ liệu phố biến nhất. Mô hình 1: Tính hiệu quả của mô hình 1: Tiết kiệm được chi phí đầu tư ban đầu và có thể trang bị hệ thống theo từng giai đoạn cụ thể. Khả năng cân bằng tải của ứng dụng được nâng cao. Mô hình 2: Tính hiệu quả của mô hình 2: Tăng cường khả năng cân bằng tải và dịch vụ trên các máy chủ. Khả năng mở rộng được nhiều hệ thống máy chủ (server). Nâng cấp hệ thống dữ liệu (Database) dễ dàng. II.3/ Một số ứng dụng được dùng Cluster - Synchronization. Ngày nay có nhiều dịch vụ và ứng dụng dùng trong việc cân bằng tải được kết nối với nhau và cùng nhau hoạt động như thể chúng chỉ là một máy tính đơn lẽ duy nhất, nói chung việc cân bằng tải ngày nay khá quan trọng thường được sử dụng để nâng cao speed, performance và capability theo cách mà một máy tính đơn lẻ không thể đạt tới, nói như các bật tiền bối đi trước là “hai cái đầu cùng nghĩ sẽ tốt hơn một cái đầu”. Ngày nay việc ứng dụng công nghệ Cluster – Synchronization đang đươc phổ biến như: Web server (bán hàng hoặc các giao dịch trực tuyến trên mạng), File server (doanh nghiệp vừa và nhỏ ứng dụng phương thức này để replicate các tài nguyên lại với nhau), Data Center (tập đoàn lớn, các công ty tài chính), DHCP server…. PHẦN III. CÀI ĐẶT MÔ HÌNH CLUSTER – SYNCHRONIZATION Hiện tại công nghệ cân bằng tải trong ứng dụng web trên thế giới được các nhà cung cấp và doanh nghiệp đang sử dụng và cũng đã được tích hợp vào các phần cứng bán ngoài thị trường, ở đây người viết cài đặt mô hình cân bằng tải web sử dụng một số soft opensource (nguồn mở) được tích hợp vào hệ thống. Mô tả hệ thống: - Để cấu hình web cluster trên hai node (server) sử dụng hearbeat đáp ứng tính sẳn sàng cao. - Đồng bộ (Synchronization) web giữa hai node (server). - Vip: là IP virtual khi chạy bên ngoài vào chỉ thấy IP 192.168.1.15 không hề thấy ip khác. Yêu cầu: - Hai máy chủ (server) điều cài đặt hệ điều hành CentOS 5.2 - Cài đặt trình duyệt http và bổ sung thêm tên hostname và địa chỉ IP để hai node có thể giao tiếp được với nhau. III.1/ Web Cluster Cài các gói heartbeat package #yum install heartbeat Hoặc download và cài đặt các gói sau: heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm heartbeat-pils-2.1.3-3.el5.centos.i386.rpm heartbeat-2.1.3-3.el5.centos.i386.rpm ; (cài 2 lần) Cấu hình heartbeat (thực hiện trên cả 2 node) Chép các file ha.cf, haresource, authkeys vào thư mục /etc/ha.d + vi/etc/ha.d/authkeys Thêm 2 dòng sau: + vi /etc/ha.d/ha.cf Thêm các dòng sau vào cuối file + vi /etc/ha.d/haresources Thêm dòng sau [...]... bộ hóa) 6 II.3/ Một số ứng dụng được dùng Cluster - Synchronization 8 PHẦN III CÀI ĐẶT MÔ HÌNH CLUSTER – SYNCHRONIZATION 8 III.1/ Web Cluster 9 III.2/ Đồng bộ web (Synchronization) 12 PHẦN IV: NHỮNG NGUYÊN LÝ SÁNG TẠO ĐƯỢC VẬN DỤNG 15 IV.1/ Nguyên lý kết hợp 15 IV.2/ Hoạt động trước tiên 15 IV.3/ Nguyên lý chứa trong 16 IV.4/ Chuyển... -delete - -exclude=** /error –e “ssh –i /root/rsync/mirrorrsync-key” backup@192.168.1.21:/var/www/html/ /var/www/html/ Script sẽ tự động backup trong mỗi phút một lần, sử dụng full path để chỉ ra nơi chạy rsync, để biết nơi chứa ta có thể sử dụng lện “which rsync” PHẦN IV NHỮNG NGUYÊN LÝ SÁNG TẠO ĐƯỢC VẬN DỤNG IV.1/ Nguyên lý kết hợp Trong công nghệ cluster (cụm) để thực thi những công viêc mà máy chủ... sẽ đòi hỏi một cấu hình phần cứng của các máy chủ tương ứng Việc sử dụng thông thạo phương pháp luận sáng tạo giúp chúng ta giải quyết các bài toán hay nhu cầu thực tiển đặt ra bằng phương pháp tối ưu nhất Bởi vậy khi giải quyết những yêu cầu thực tế không chỉ trong lĩnh vực tin học mà trong nhiều lĩnh vực khác, việc vận dụng các nguyên tắc trong phương pháp luận sáng tạo thành thạo sẽ giúp cho việc... đời những dịch vụ trực tuyến ngày cành mạnh mẽ IV.2/ Hoạt động trước tiên Resource DLLs cho mỗi ứng dụng chịu trách nhiệm theo dõi và điều khiển ứng dụng đó ví dụ resource DLL sao lưu và phục hồi các thuộc tính của ứng dụng trong cluster Database mang resource online và offline và kiểm tra trạng thái của tài nguyên đó nếu cần thiết thì thực hiện failover [II.1] IV.3/ Nguyên lý chứa trong Nguyên lý này... và có thể dễ dàng kết nối chia sẽ tài nguyên Công nghệ Cluster – Synchronization được đưa ra nhằm đáp ứng được các nhu cầu ngày càng gia tăng trong việc truy xuất các ứng dụng, khả năng chịu lỗi cao luôn đáp ứng được tính sẳn sàng của hệ thống và khả năng có thể mở rộng hệ thống khi cần thiết việc liên kết các máy chủ đơn lẻ cùng nhau hoạt động trong hệ thống tạo nên một hệ thống mạnh và người ta kết... (tài nguyên) bị hỏng Trong cluster một node được coi là bị hỏng nếu nó mất sự giao tiếp với các node khác, quá trình regroup event được xảy ra sau khi một node bị hỏng các node còn lại tiến hành đàm phán cho việc sở hữu các resouce group Như vậy nó giữ cho các resouce group luôn trong tình trạng sẳn sàng PHẦN V KẾT LUẬN Thông qua những nguyên lý phương pháp luận sáng tạo giúp người viết có được những. .. nghĩa: tên node chính, địa chỉ IP ảo (cluster IP) và tài nguyên dùng để bắt đầu + Cấu hình httpd: Tạo web site: ở đây chúng ta có thể đưa bất kỳ website nào vào nhưng trong phần này người viết chỉ tạo một trang html dùng để kiểm trả thử Lúc này bật chế độ heartbeat lên #chkconfig heartbeat on Lúc này tại node 1 ipconfig | more sẽ thấy ip Dùng máy trạm truy cập vào web site node 1 Hiện tại chúng ta thấy... hoạt động bình thường ứng trên node 1 ta tắt chức năng heartbeat node 1: # service heartbeat stop Lấy máy trạm truy cập vào web trên node 2 node 2: ifconfig | more sẽ thấy ip 192.168.1.30 III.2/ Đồng bộ web (Synchronization) Yêu cầu: cả hai node cài rsync-2.6.8-3.1.i386 Trên node1, tạo unprivillege user #useradd backup #passwd backup Tại node2 kiểm tra sự đồng bộ #rsync –avz –e ssh backup@192.168.1.11:/var/www/html/... rsync –avz - -delete - -exclule=** /stats - -exclude=** /error –e “ssh –i /root/rsync/mirrorrsync-key” backup@192.168.1.11:/var/www/html/ /var/www/html/ Lưu ý: - -delete: xóa các file trên node2 khi các file đó trên node1 bị xóa - -exclude: không mirror thư mục, trong trường hợp này là - -exclude=**/error means “do not mirror /var/www/html/error” Lập lịch Tại node2: #crontab –e */i***** /usr/bin/rsync –azq... kiện được ghi lại trong một khoảng thời gian ngắn, chúng được kết hợp với nhau trước khi broadcast, các sự kiện sẽ được dán nhãn để cho biết node nào chúng được xảy ra và các node khác tiếp nhận các sự kiện ghi chúng lên local log, việc đồng bộ hóa dữ liệu bên trong để có thể lưu trữ và xử lý những tác vụ chuyên biệt IV.4/ Chuyển động tới một chiều mới Như đã biết việc công nghệ Cluster – Synchronization . ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG BÁO CÁO THU HỌACH MÔN HỌC PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC ĐỀ TÀI: NHỮNG NGUYÊN LÝ SÁNG TẠO TRONG ỨNG DỤNG CÂN BẰNG TẢI WEB (CLUSTER – SYNCHRONIZATION). biết nơi chứa ta có thể sử dụng lện “which rsync”. PHẦN IV. NHỮNG NGUYÊN LÝ SÁNG TẠO ĐƯỢC VẬN DỤNG IV.1/ Nguyên lý kết hợp Trong công nghệ cluster (cụm) để thực thi những công viêc mà máy chủ. NGUYÊN LÝ SÁNG TẠO ĐƯỢC VẬN DỤNG 15 IV.1/ Nguyên lý kết hợp 15 IV.2/ Hoạt động trước tiên 15 IV.3/ Nguyên lý chứa trong 16 IV.4/ Chuyển động tới một chiều mới 16 IV.5/ Nguyên lý dự phòng