bÁo cÁo kẾt quẢ thỰc hiỆn nĂm...

12
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN BAN QUẢN LÝ DỰ ÁN 11-P04-VIE ----------------- Dự án NGHIÊN CỨU THUỶ TAI DO BIẾN ĐỔI KHÍ HẬU VÀ XÂY DỰNG HỆ THỐNG THÔNG TIN NHIỀU BÊN THAM GIA NHẰM GIẢM THIỂU TÍNH DỄ BỊ TỔN THƯƠNG Ở BẮC TRUNG BỘ VIỆT NAM (CPIS) Mã số: 11.P04.VIE (Thuộc Chương trình thí điểm hợp tác nghiên cứu Việt Nam - Đan hạch 2012-2015) BÁO CÁO KẾT QUẢ THỰC HIỆN NĂM 2012-2013 Nội dung 3: Tổ chức thực hiện CPIS Nhóm nghiên cứu: WP6 Chdán: Trường Đại hc Khoa hc Tnhiên Giám đốc dán: GS. TS. Phan Văn Tân Những người thực hiện: Trưởng nhóm: ThS. Nguyễn Trung Kiên Các thành viên: TS. Bùi Quang Thành CN. Nguyễn Quốc Huy ThS. Phan Văn Trọng CN. Đoàn Thị The

Upload: others

Post on 24-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

BAN QUẢN LÝ DỰ ÁN 11-P04-VIE

-----------------

Dự án

NGHIÊN CỨU THUỶ TAI DO BIẾN ĐỔI KHÍ HẬU

VÀ XÂY DỰNG HỆ THỐNG THÔNG TIN NHIỀU BÊN THAM GIA

NHẰM GIẢM THIỂU TÍNH DỄ BỊ TỔN THƯƠNG

Ở BẮC TRUNG BỘ VIỆT NAM (CPIS) Mã số: 11.P04.VIE

(Thuộc Chương trình thí điểm hợp tác nghiên cứu

Việt Nam - Đan hạch 2012-2015)

BÁO CÁO KẾT QUẢ THỰC HIỆN NĂM 2012-2013

Nội dung 3: Tổ chức thực hiện CPIS

Nhóm nghiên cứu: WP6

Chủ dự án: Trường Đại học Khoa học Tự nhiên

Giám đốc dự án: GS. TS. Phan Văn Tân

Những người thực hiện:

Trưởng nhóm: ThS. Nguyễn Trung Kiên

Các thành viên: TS. Bùi Quang Thành

CN. Nguyễn Quốc Huy

ThS. Phan Văn Trọng

CN. Đoàn Thị The

2

Tổ chức thực hiện CPIS

Họ và tên chuyên gia: Nguyễn Quốc Huy

1. Mở đầu

Hệ thống thông tin là sản phẩm trực quan và gần gũi với người sử dụng nhất

trong khuôn khổ dự án “Nghiên cứu thuỷ tai do biến đổi khí hậu và xây dựng hệ thống

thông tin nhiều bên tham gia (CPIS) nhằm giảm thiểu tính dễ bị tổn thương ở Bắc

Trung Bộ Việt Nam”. Hệ thống này được thiết kế để lưu trữ một lượng dữ liệu lớn với

nhiều định dạng khác nhau, được thu thập bởi các nhóm nghiên cứu trong suốt quá

trình thực hiện cũng như vận hành.Đi cùng với việc lưu trữ, hệ thống cũng cần cung

cấp các cơ chế cho các nhà khoa học truy cập vào khối dữ liệu để xử lý, phân tích,

trích suất thông tin, tổng hợp lại thành cơ sở dữ liệu tri thức. Và cuối cùng, chức năng

quan trọng nhất của hệ thống là truyền tải thông tin mà trung tâm là WebGIS, lồng

ghép kiến thức bản địa nhằm giúp người dân ứng phó với thuỷ tai do biến đổi khí hậu

gây ra nhằm giảm thiểu những tổn thất về tính mạng và tài sản.

Trong báo cáo này, chúng tôi tập trung vào việc triển khai hệ thống lưu trữ đáp

ứng yêu cầu lưu trữ lượng dữ liệu lớn với băng thông cao và ổn định. Việc triển khai

WebGIS cùng với thành phần truyền thông của hệ thống sẽ được trình bày kĩ trong các

báo cáo khác.

2. Sơ lược thiết kế hệ thống CPIS

CPIS phục vụ 3 nhóm đối tượng chính: các nhà khoa học, những người làm

chính sách và cộng đồng. Hệ thống cần đáp ứng được ba chức năng:

(i) lưu trữ các loại dữ liệu khác nhau;

(ii) giúp các nhà khoa học truy cập, phân tích dữ liệu; và

(iii) truyền tải thông tin đến cộng đồng người sử dụng.

Dữ liệu đầu vào có thể có các loại định dạng khác nhau, bao gồm số liệu định

lượng và dữ liệu “kiến thức bản địa” nhận được từ cộng đồng. Dữ liệu có thể ở dạng

ảnh, phim, bản vẽ, ảnh vệ tinh, văn bản, sản phẩm dự báo các loại. Lượng dữ liệu rất

lớn này sau đó sẽ được số hóa, chuẩn hóa, không gian hóa và tích hợp vào cơ sở tri

thức dựa trên GIS.

Các nhà khoa học có thể sử dụng các ứng dụng qua mạng nội bộ để truy cập đến

hệ thống thông tin, phân tích dữ liệu và trích rút các thông tin cần thiết. Hệ thống cũng

cần cho phép người dùng tìm kiếm và tạo tài liệu lưu trữ trên đĩa quang (CD, DVD),

bản đồ và sách để gửi cho cộng đồng bị hạn chế trong việc truy cập Internet, nhất là

khi có thiên tai xuất hiện.

Đối với đông đảo cộng đồng người sử dụng, hệ thống cho phép truy cập cơ sở tri

thức bằng trình duyệt web (trên PC hoặc điện thoại di động) qua Internet. Website cần

được thiết kế để có thể truy cập được theo các mức ưu tiên khác nhau cho các nhà

khoa học, các nhà quản lý và cộng đồng địa phương. Giao diện của website phải được

xây dựng sao cho thân thiện, mềm dẻo với người sử dụng để họ có thể truy cập và

phản hồi thông tin của họ. Thông qua quá trình tinh chỉnh liên tiếp (các phân tích số

3

liệu từ các nhà khoa học, thông tin thẩm định và phản hồi từ người sử dụng) thông tin

trong hệ thống sẽ được chứng thực và ngày càng được làm giàu thêm.

Dựa trên thông tin thu thập về nhu cầu của 3 nhóm hưởng lợi có được qua các

bản khảo sát cùng với yêu cầu chung về thệ thống CPIS, chúng tôi đã lên một thiết kế

cơ sở cho hệ thống CPIS dựa trên GIS [Hình 1].

Hình 1. Kiến trúc hệ thống CPIS

Hệ thống có thể được chia thành 2 cụm PUBLIC và PRIVATE. Cụm PRIVATE

bao gồm cluster (để chạy các mô hình khí tượng, thuỷ văn), các server dịch vụ

(Database, Geo, Web, FTP), các máy trạm xử lý dữ liệu và mạng kết nối. Cụm

PUBLIC bao gồm thành phần cơ bản là Website để người dùng tương tác. Các thành

phần trong cụm PRIVATE chỉ có thể được truy cập bởi các thành viên thực hiện dự án

(các nhà khoa học). Cụm PUBLIC (website) được sử dụng bởi rộng rãi người dùng

(cộng đồng, nhà quản lý, nhà khoa học).

Cụm PRIVATE bao gồm các thiết bị và dịch vụ đáp ứng yêu cầu (i) và (ii) của

CPIS, tức lưu trữ dữ liệu và cung cấp cơ chế truy cập để xử lý và phân tích. Cụm

PUBLIC chỉ gồm các dịch vụ hướng tới người dùng cuối như máy chủ web và

website.

3. Triển khai hệ thống CPIS

3.1. Xây dựng hệ thống lưu trữ hiệu năng cao Lustre

a) Thử nghiệm trên hệ thống sẵn có

4

Để chứng minh khả năng vượt trội của Lustre so với hệ thống lưu trữ tập trung,

chúng tôi xây dựng môi trường thử nghiệm như mô tả trong [Hình 2].

Trong thử nghiệm này một máy chủ được sử dụng làm NFS server với phân vùng

lưu trữ được đặt trên một Hardware RAID 5 - xây dựng trên 3 ổ SATA 1TB và chia sẻ

qua NFS. NFS server này cũng đóng vai trò máy chủ MDS cho hệ thống Lustre. 3

node tính toán đóng vai trò làm NFS client, đồng thời làm OSS và Lustre client. Các

đĩa cứng đơn trên node tính toán tương tự đĩa cứng sử dụng trên NFS server. Thông số

stripe_count được cấu hình bằng 3, tức mỗi tập tin sẽ được chia ra thành các phân

đoạn dữ liệu lưu trữ trên cả 3 node; stripe_size được đặt mặc định.

Chương trình tính toán chạy trên hệ thống thử nghiệm là mô hình MM5, được

cấu hình để mô phỏng khí hậu trong 1 tháng. Có tất cả 24 tiến trình MPI chạy trên 3

node tính toán, sau mỗi bước thời gian mô phỏng 1 ngày, mỗi tiến trình sẽ ghi một tập

tin có dung lượng khoảng 1 GB lên hệ thống.

Hình 2. Cấu hình thử nghiệm khả năng đáp ứng tính toán song song

Các đồ thị trong [Hình 3] được lấy từ hệ thống giám sát cluster - Ganglia

Monitor. Trong phần đồ thị tương ứng với thử nghiệm chạy MM5 trên NFS, cứ sau

một khoảng thời gian, cả 24 bộ xử lý trên 3 node tính toán đều giảm hoạt động do dữ

liệu được chuyển qua mạng kết nối cho NFS server để ghi vào ổ cứng. Băng thông

vào/ra ghi nhận được trên mạng kết nối đạt được khoảng 50 MB/s. Trong trường hợp

thử nghiệm ghi dữ liệu kết xuất của MM5 trên Lustre, băng thông vào/ra có lúc đạt

được tới 80 MB/s, còn lại là hầu như lớn hơn 50 MB/s. Thời gian ghi dữ liệu vào hệ

thống tập tin Lustre nhỏ hơn so với NFS nên thời gian giảm hoạt động của các bộ xử

lý giảm đi đáng kể, dẫn tới hiệu suất đạt được trên hệ thống tính toán cũng tăng lên

đáng kể. Thời gian ghi dữ liệu giảm có thể giải thích vì Lustre cho phép các máy

khách ghi dữ liệu song song cùng một lúc.

5

Hình 3. Kết quả thử nghiệm so sánh NFS (trái) với Lustre (phải)

b) Triển khai hệ thống lưu trữ Lustre phục vụ tính toán song song

Thử nghiệm trong phần trên cho thấy rằng Lustre đáp ứng tốt nhiệm vụ làm hệ

thống lưu trữ phục vụ tính toán các bài toán Khí tượng, khí hậu. Tuy nhiên, do hệ

thống vẫn sử dụng mạng kết nối 1 Gbps, băng thông vào/ra trên hệ thống chưa phát

huy được khả năng của Lustre. Thêm nữa, do phân tích ở phần trên, để đảm bảo tính

toàn vẹn của dữ liệu, các OST được đặt trên các Hardware RAID 5(0), băng thông vào

ra sẽ vượt ra ngoài khả năng truyền tải của mạng kết nối khiến mạng kết nối trở thành

nút "cổ chai" trong hệ thống lưu trữ. Chính vì vậy, trong hệ thống lưu trữ mới, chúng

tôi quyết định nâng mạng kết nối lên Infiniband 10Gbps [Hình 4].

Hình 4. Hệ thống lưu trữ Lustre

2 máy chủ lưu trữ được bổ sung vào hệ thống đóng vai trò làm OSS. Mỗi OSS có

24 GB RAM, được gắn 25 ổ cứng SATA 3 Enterprise, mỗi ổ có dung lượng 2TB. 25 ổ

cứng này được cấu hình với hardware RAID 50 + Hot spare và được chia thành 4 phân

vùng, tương ứng với 4 OST. Máy chủ IBM được nâng cấp RAM lên 8 GB đóng vai trò

máy chủ MDS. Tổng dung lượng lưu trữ của hệ thống đạt khoảng 80 TB với băng

thông đạt khoảng 1 GB/s.

3.2. Xây dựng hệ thống HDFS phục vụ sao lưu dữ liệu

a) HDFS

Apache Hadoop

6

Apache Hadoop là một nền tảng phần mềm nguồn mở hỗ trợ các chương trình

phân tán xử lý lượng số liệu cực lớn cỡ hàng trăm TB cho tới hàng PB. Tiền thân của

Apache Hadoop bắt nguồn từ một dự án cá nhân, xây dựng máy tìm kiếm mã mở

(Nutch) của Doug Cutting vào năm 2002. Trong 2 năm đầu tiên, Doug gặp rất nhiều

khó khăn trong việc tăng quy mô lưu trữ và xử lý khối lượng dữ liệu web lớn cho

Nutch. Tới khoảng năm 2004, được truyền cảm hứng từ một bài báo của Google về

MapReduce và GFS, Doug Cutting phát triển phiên bản mã mở Hadoop MapReduce

và HDFS tương ứng. Năm 2006, Hadoop tách khỏi Nutch và trở thành dự án mã mở

cấp cao của Apache vào năm 2008.

HDFS

HDFS - Hadoop Distributed File System - là một hệ thống file phân tán được

thiết kế cho các hệ thống sử dụng thiết bị thông thường (tức những thiết bị tương

đương với thiết bị của nhóm nghiên cứu). HDFS tuy có rất nhiều điểm chung với các

hệ thống file phân tán hiện có nhưng cũng chứa nhiều điểm khác biệt. Một trong số đó

là HDFS có khả năng chịu lỗi cao, được thiết kế để chạy trên các phần cứng rẻ tiền và

đặc biệt đảm bảo được tính toàn vẹn của dữ liệu khi một phần trong số các phần cứng

gặp lỗi.

Kiến trúc của HDFS

HDFS có kiến trúc chủ - tớ (master - slave). Một hệ thống HDFS [Hình 5] bao

gồm một Namenode duy nhất (master) - máy chủ quản lý không gian tên của hệ thống

tập tin và điều tiết việc truy xuất tập tin của các máy khách (client). Các thiết bị lưu trữ

được quản lý bởi các Datanode (slave) - chương trình chạy trên các máy chứa thiết bị

lưu trữ. HDFS tương tác với máy khách qua không gian tên, cho phép lưu trữ dữ liệu

của người dùng dưới dạng các tập tin.

Hình 5. Kiến trúc HDFS

Bên trong HDFS, tập tin được chia ra thành một hoặc nhiều khối (block) dữ liệu

(mặc định là 64MB) và rồi các block này được lưu trữ trên một tập các Datanode.

Namenode là nơi chứa siêu dữ liệu, đồng thời đảm nhận các thao tác trên không gian

tên như mở, đóng và thay đổi tên tập tin và thư mục. Namenode cũng xác định ánh xạ

giữa các block dữ liệu với các Datanode (block nào nằm trên Datanode nào). Các

Datanode chịu trách nhiệm đáp ứng các yêu cầu đọc/ghi của người dùng từ các máy

7

khách. Chúng cũng thực hiện việc khởi tạo, xoá và sao chép các block dữ liệu theo chỉ

lệnh từ Namenode.

Được thiết kế để triển khai trên các hệ thống phần cứng thông dụng, với các

thành phần phần cứng có tần suất gặp lỗi cao, HDFS đảm bảo độ tin cậy bằng cách tự

động sao chép các block dữ liệu lên các Datanode khác nhau. Số lượng các bản sao

của các block dữ liệu được duy trì trong hệ thống phụ thuộc vào một hệ số gọi là hệ số

nhân (replication factor). Hệ số này được ấn định khi khởi tạo một tập tin và hoàn toàn

có thể thay đổi về sau theo chủ ý của người dùng. [Hình 6] mô tả các block với các

datanode tương ứng trong hệ thống có hệ số nhân bằng 3.

Việc lưu nhiều bản sao của một block dữ liệu trên hệ thống là chiến thuật đơn

giản để đảm bảo tính chịu lỗi của HDFS. Namenode quyết định toàn bộ việc sao chép

các block dữ liệu. Cứ 3 giây 1 lần, Namenode nhận tín hiệu Heartbeat và dữ liệu báo

cáo block (Blockreport) từ các Datanode. Nhận được Heartbeat từ một Datanode có

nghĩa là node đó vẫn hoạt động bình thường; còn Blockreport chứa danh sách các

block trên Datanode. Nếu sau 10 phút mà Namenode không nhận được Heartbeat từ

một Datanode, Datanode đó được coi là chết, Namenode sẽ xác định các block dữ liệu

được lưu trên node đó rồi yêu cầu node có chứa block dữ liệu tương ứng còn sống thực

hiện việc sao chép lên một node khác ([Hình 7]). Quá trình sao chép cũng xảy ra tương

tự trong trường hợp Namenode nhận thấy 1 block dữ liệu không thể truy cập được.

Nếu node bị chết khôi phục được hoạt động hay block dữ liệu lại có thể truy cập được,

số lượng bản sao của block trên hệ thống vượt quá hệ số nhân, Namenode sẽ lựa chọn

Datanode tương ứng rồi ra lệnh huỷ bản sao.

Hình 6. Sao chép block dữ liệu khi tạo

tập tin

Hình 7. Sao chép block dữ liệu khi

lượng bản sao giảm xuống dưới hệ số nhân

Với thiết kế này, siêu dữ liệu và dữ liệu trên HDFS được lưu trữ tách biệt nhau.

Siêu dữ liệu, bao gồm các thông tin về tập tin, cấu trúc cây thư mục và vị trí các block

dữ liệu, được lưu trữ trên Namenode. Các block dữ liệu được lưu trên các Datanode.

Mọi yêu cầu ghi hoặc truy vấn dữ liệu từ các máy khách bắt đầu bằng việc gửi yêu cầu

đến Namenode. Sau khi Namenode gửi trả lại cho máy khách danh sách các Datanode,

dữ liệu sẽ được truyền trực tiếp giữa máy khách và các Datanode. Theo cách này, thời

gian tìm kiếm vị trí dữ liệu (seek time) sẽ lâu hơn các phương pháp lưu trữ thông

thường trên một kho lưu trữ trung tâm (centralized storage); nhưng băng thông truyền

dữ liệu theo dòng tổng cộng sẽ tăng tuyến tính với số lượng Datanode trong hệ thống.

Một điểm khác biệt nữa giữa HDFS và các hệ thống tập tin thông thường khác là

HDFS không hoàn toàn tương thích chuẩn POSIX. Khi đọc dữ liệu, HDFS vẫn cho

8

phép truy cập ngẫu nhiên nhưng khi ghi, HDFS chỉ hỗ trợ ghi tuần tự; HDFS cũng

không cho phép nhiều ứng dụng ghi cùng lúc vào một tập tin. Nói một cách tóm lược,

HDFS là lựa chọn thích hợp cho các ứng dụng ghi-một-lần-đọc-nhiều-lần trên các tập

tin có dung lượng lớn với băng thông đọc cao và độ trễ truy xuất dữ liệu chấp nhận

được.

DFS-FUSE (Hay MountableHDFS)

Một ứng dụng có thể truy cập dữ liệu trong HDFS bằng nhiều cách khác nhau.

Về nguyên bản, HDFS được viết trên nền JAVA nên người dùng có thể sử dụng giao

diện lập trình ứng dụng (API) để truy xuất dữ liệu. Tuy nhiên, đơn giản nhất cho một

người sử dụng thông thường là khả năng mount hệ thống tập tin HDFS vào cây thư

mục của hệ điều hành. DFS-FUSE [6] là một dự án ra đời với mục tiêu như vậy. Khi

HDFS đã được mount vào hệ thống (biểu hiện dưới dạng một thư mục), người dùng có

thể thao tác trên đó bằng các lệnh Unix chuẩn như 'ls', 'cd', 'cp', 'mkdir', 'find', 'grep',

hoặc sử dụng các thư viện POSIX chuẩn như open, write, read, close với các ngôn ngữ

lập trình C, C++, Fortran, Python, Perl, Java, Shell, ...

b) Sự quan trọng của Siêu dữ liệu

Đối với người quản trị hệ thống HDFS, họ phải hiểu một điều rằng Siêu dữ liệu

trên Namenode là những bit thông tin quý giá nhất mà họ cần bảo vệ. Hệ thống HDFS

có thể chứa đến hàng trăm TB dữ liệu, trải ra trên hàng triệu block dữ liệu và chứa trên

hàng nghìn Datanode; nhưng Siêu dữ liệu, thường chỉ có độ lớn từ vài chục MB đến

vài chục GB chính là chìa khoá cho phép số thông tin khổng lồ đó ghép nối lại với

nhau thành các tập tin có nghĩa. Một khi Siêu dữ liệu bị mất, cả hệ thống HDFS với

hàng triệu block dữ liệu rời rạc trở thành vô giá trị. Chính vì vậy, Siêu dữ liệu cần phải

được sao lưu một cách thường xuyên.

Để tăng tốc tìm kiếm, Siêu dữ liệu được lưu trực tiếp trong bộ nhớ của

Namenode. Namenode đồng thời cũng lưu hai cấu trúc dữ liệu lên ổ cứng để đảm bảo

sự ổn định của Siêu dữ liệu. Cấu trúc đầu tiên được lưu là bản sao của Siêu dữ liệu

trong bộ nhớ Namenode - fsimage, cấu trúc thứ hai là nhật ký những thay đổi kể từ lần

sao lưu gần nhất - edits. Ngoài Namenode, hệ thống HDFS còn duy trì một Namenode

phụ (Secondary Namenode - 2NN) làm nhiệm vụ định kì nạp fsimage và edits từ

Namenode, thực hiện các thay đổi trong edits lên fsimage rồi gửi lại cho Namenode.

Namenode nhận fsimage từ 2NN thay thế Siêu dữ liệu trong bộ nhớ, xoá nhật ký edits

và đưa quy trình về lại ban đầu. Khi HDFS được khởi động, Namenode cũng sẽ tìm

đến 2 tập tin fsimage và edits từ vị trí được thiết lập trong cấu hình, thực hiện thay đổi

trong edits lên fsimage rồi đọc Siêu dữ liệu vào bộ nhớ. Như vậy, việc sao lưu Siêu dữ

liệu có thể thực hiện bằng cách sao lưu 2 cấu trúc dữ liệu này.

c) Ứng dụng HDFS trong sao lưu dữ liệu

Hiện trong thực tế chưa có giải pháp toàn diện cho một hệ thống sao lưu dữ liệu

dựa trên HDFS. Tuy nhiên, dựa trên kiến trúc thiết kế và những phản hồi tích cực từ

phía người sử dụng về độ ổn định và an toàn của hệ thống, chúng ta có thể tin tưởng

rằng HDFS hoàn toàn đáp ứng được yêu cầu của một hệ thống lưu trữ dữ liệu sao lưu.

Facebook, Yahoo là hai trong số hàng trăm công ty hàng đầu thế giới đang sử dụng

HDFS để lưu trữ dữ liệu phục vụ kinh doanh [7]. Còn theo báo cáo của Dhruba

Borthakur thủ lĩnh dự án Apache HDFS, Facebook cũng sao lưu toàn bộ cơ sở dữ liệu

MySQL lên hệ thống HDFS của họ [5].

9

d) HDFS phục vụ CPIS

Mã nguồn Hadoop được chia sẻ miễn phí và người dùng có thể tải về sử dụng từ

website của Apache. Ngoài Apache, một vài công ty độc lập cũng phát hành phiên bản

riêng của họ, kết hợp Apache Hadoop với các tiện ích được phát triển bởi cộng đồng

sử dụng. Nhóm nghiên cứu đã triển khai phiên bản hadoop-0.20.2-cdh3u2 của

Cloudera [8] lên hệ thống cluster của mình [Hình 8].

Hình 8. Hadoop Cluster tại Remoclic

Hệ thống hiện tại có dung lượng tổng cộng 50TB với hệ số nhân mặc định được

cấu hình bằng 2. Do dung lượng của siêu dữ liệu HDFS chỉ vào khoảng 80MB nên bộ

nhớ của Namenode (8GB) là hoàn toàn đáp ứng được.

Hầu hết dữ liệu trên hệ thống là những tập tin có dung lượng lớn và không thay

đổi nội dung trong quá trình tồn tại nên chúng tôi lựa chọn mô hình sao lưu không cấu

trúc. Việc sao lưu có thể thực hiện thủ công hoặc tự động bằng các script bash shell.

Để sao lưu Siêu dữ liệu, chúng tôi cấu hình Namenode cho ghi fsimage và edits

ra nhiều ổ cứng khác nhau trên hệ thống. Tuy nhiên, việc sao lưu này là chưa đủ độ tin

cậy. Thực tế cho thấy rằng, sự bất cẩn của người dùng cũng là một trong số nguyên

nhân chính gây ra mất mát dữ liệu. Một trường hợp hiếm nhưng có thể xảy ra là quản

trị hệ thống chạy nhầm lệnh: hadoop fs -rmr /. Với lệnh này, toàn bộ thông tin về

thư mục và tập tin trong hệ thống sẽ bị xoá khỏi Siêu dữ liệu của HDFS trên

Namenode (các block dữ liệu chưa bị xoá ngay lập tức khỏi các Datanode). Tất cả các

bản sao fsimage và edits sau một khoảng thời gian nhất định sẽ được cập nhật và

người dùng sẽ mất tất cả thông tin. Đề phòng trường hợp này, chúng tôi đã tìm ra giải

pháp tự động sao lưu fsimage và edits theo mô hình sao lưu tăng dần, sử dụng không

gian lưu trữ trực tuyến của Dropbox. Dropbox cho phép người dùng lấy lại tập tin đã

mất, phục hồi thông tin từ quá khứ với các thay đổi trong thời gian tới 1 tháng [Hình

9]. Và với dung lượng lưu trữ miễn phí 2GB, hệ thống của chúng tôi có thể an toàn mở

rộng ra tới hàng trăm TB.

10

Hình 9. Giao diện Dropbox dùng để phục hồi tập tin

3.3. Triển khai WebGIS

Như đã trình bày trong phần thiết kế, WebGIS được xây dựng dựa trên các thành

phần mã nguồn mở cơ bản PostGIS, GeoServer, GeoWebCache, GeoExt và

OpenLayers. Việc triển khai WebGIS bao gồm các công đoạn:

Thiết lập danh mục dữ liệu

Thiết kế mô hình dữ liệu

Chuẩn hoá dữ liệu nền địa lý khu vực nghiên cứu

Thu thập và lưu trữ dữ liệu trong cơ sở dữ liệu

Xây dựng các công cụ phục vụ hiển thị trên nền Web

Tài liệu hoátiến trình triển khai với nhiều công đoạn cùng các kĩ thuật tiến hành

khác nhau sẽ được tách ra trong các báo cáo riêng. Người đọc có thể tìm hiểu tiến trình

này trong các báo cáo tương ứng.

3.4. Triển khai hệ thống truyền thông

Hệ thống truyền thông bao gồm hai thành phần: mạng kết nối và website dịch vụ.

Hệ thống được thiết kế và xây dựng để phục vụ lượng không nhỏ người dùng. Vì lý do

này, việc đảm bảo kết nối thông suốt cần được đặt lên hàng đầu. Hệ thống được cấu

hình để kết nối với Internet qua hai đường liên kết chính. Đường thứ nhất được cung

cấp bởi VNPT với băng thông lên tới 40Mbps, đường thứ hai cung cấp bởi Đại học

Quốc Gia Hà Nội với băng thông cao nhất đạt 30Mbps. Cả hai đường kết nối đều là

cáp quang, cho độ ổn định cũng như tuổi thọ cao. Hai đường kết nối này được cấu

hình cân bằng tải với router Draytek 3900 [Hình 10].

Hình 10. Router Draytek 3900

11

Website của dự án được xây dựng hoàn toàn từ phần mềm mã nguồn mở, bao gồm

các thành phần chính Apache webserver, PHP và MySQL [Hình 11].Tất cả các thành

phần của hệ thống truyền thông bao gồm dịch vụ máy chủ Web, website, MySQL

server, PostGIS, GeoServer, ... được lưu trữ trên một máy chủ trung tâm chạy hệ điều

hành CentOS cùng với phương án ảo hoá sử dụng Xen.

Hình 11. Website truyền thông của dự án

4. Kết luận

Hệ thống thông tin là kết quả trực quan và gần gũi người sử dụng nhất của dự án

“Nghiên cứu thuỷ tai do biến đổi khí hậu và xây dựng hệ thống thông tin nhiều bên

tham gia (CPIS) nhằm giảm thiểu tính dễ bị tổn thương ở Bắc Trung Bộ Việt Nam”.Hệ

thống cần đáp ứng khả năng lưu trữ lớn với băng thông cao để phục vụ việc lưu trữ

nhiều dạng dữ liệu khác nhau và đặc biệt là phục vụ hệ thống tính toán hiệu năng cao,

dự báo khí hậu. Hệ thống cũng cần được kết nối một cách ổn định với Internet để phục

vụ việc truy cập của người sử dụng mà phần lớn là người dân ở những vùng chịu ảnh

hưởng của thuỷ tai do biến đổi khí hậu.

Trong báo cáo này, chúng tôi đã trình bày việc triển khai hệ thống lưu trữ Lustre,

HDFS với dung lượng rất lớn cùng băng thông cao phục vụ cho CPIS. Chúng tôi cũng

trình bày sơ qua việc triển khai WebGIS và hệ thống truyền thông mà trọng tâm là

12

Website của dự án. Chi tiết việc triển khai các thành phần này có thể tìm thấy trong

các báo cáo tương ứng.

5. Tài liệu tham khảo

[1]. The Diverse and Exploding Digital Universe, IDC White Paper, March 2008 -

http://www.emc.com/collateral/analyst-reports/diverse-exploding-digital-universe.pdf

[2]. Kabooza Global Backup Survey - http://www.kabooza.com/globalsurvey.html

[3]. Backup article on Wiki - http://en.wikipedia.org/wiki/Backup

[4]. HDFS Design - http://hadoop.apache.org/hdfs/docs/current/hdfs_design.html

[5]. Apache Hadoop FileSystem and its Usage in Facebook - Dhruba Borhakur, April 4,

2011 - http://cloud.berkeley.edu/data/hdfs.pdf

[6]. MountableHDFS - Hadoop Wiki, http://wiki.apache.org/hadoop/MountableHDFS

[7]. PowerdBy - Hadoop Wiki, http://wiki.apache.org/hadoop/PoweredBy

[8]. Cloudera - http://cloudera.com