Tải bản đầy đủ (.doc) (36 trang)

TÌM HIỂU KIẾN TRÚC CỦA MỘT ỨNG DỤNG CLOUD COMPUTING

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (753.08 KB, 36 trang )

MỤC LỤC
TÌM HIỂU MÔ HÌNH ĐIỆN TOÁN ĐÁM MÂY 3
TÌM HIỂU VÀ ÁP DỤNG EUCALYPTUS CLOUD COMPUTING
PLATFORM 10
TÌM HIỂU KIẾN TRÚC CỦA MỘT ỨNG DỤNG CLOUD
COMPUTING 21
1/36
GIỚI THIỆU
Ra đời [9] vào khoảng thời gian giữa năm 2007, thuật ngữ điện toán đám
mây(cloud computing) bắt nguồn từ các ứng dụng điện toán lưới(grid computing)
trong thập niên 1980, điện toán theo nhu cầu(utility computing) và phần mềm dịch vụ
SaaS(Software as a Service). Với mô hình điện toán đám mây(cloud computing), các
tài nguyên điện toán như máy chủ(server) có thể được chia nhỏ từ các cơ sở hạ tầng
phần cứng và sẵn sàng để thực hiện một nhiệm vụ nào đó. Các hạ tầng cơ sở của điện
toán đám mây hiện nay là sự kết hợp của những dịch vụ đáng tin cậy được phân phối
thông qua các trung tâm dữ liệu(data center), được xây dựng trên những máy chủ với
những cấp độ khác nhau của công nghệ ảo hóa. Những dịch vụ này có thể được truy
cập từ bất kỳ đâu trên thế giới, trong đó đám mây là một điểm truy cập duy nhất cho
tất cả các máy tính có nhu cầu của khách hàng. Các dịch vụ thương mại cần đáp ứng
yêu cầu chất lượng dịch vụ từ phía khách hàng và thông thường đưa ra các mức thỏa
thuận dịch vụ(Service level agreement), các tiêu chuẩn mở(Open standard) và phần
mềm mã nguồn mở(open source software) cũng góp phần phát triển điện toán máy
chủ ảo.
Khác với trước đây, thông thường để triển khai một ứng dụng web, chúng ta phải
đi mua hay thuê các máy chủ (server), để cài đặt các ứng dụng web. Đối với mô hình
điện toán đám mây thì chúng ta chỉ cần đưa ra các yêu cầu của máy chủ(hệ điều hành,
cơ sở dữ liệu, dung lượng ỗ cứng…), hệ thống sẽ tự động tìm kiếm các tài nguyên
nhàn rỗi và đáp ứng các yêu cầu. Với cơ chế hoạt động như thế này thì các doanh
nghiệp có thể tiết kiệm được chi phí, giảm độ phức tạp về cơ câu tổ chức và tăng khả
năng sử dụng các tài nguyên… Thông qua kiến thức môn học “Tinh toán lưới” và
một số nội dung tìm hiểu từ các bài báo, ebook, bài thu hoạch môn học bao gồm các


phần chính như sau:
Phần 1: Tìm hiểu mô hình điện toán đám mây
Phần 2: Tìm hiểu Eucalyptus Cloud Computing Platform.
Phần 3: Tìm hiểu kiến trúc của một ứng dụng Cloud Computing
2/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
TÌM HIỂU MÔ HÌNH ĐIỆN TOÁN ĐÁM MÂY
1.1 Một số định nghĩa về mô hình điện toán đám mây
 Định nghĩa 1
Điện toán đám mây(cloud computing) là sử dụng mạng internet để truy cập vào
các phần mềm(software) của một cá nhân hay tổ chức nào đó. Các phần mềm này có
thể được cài đặt trên các hạ tầng phần cứng(hardware) của một cá nhân hay một tổ
chức, trong một trung tâm dữ liệu(data center) thuộc một cá nhân hay tổ chức[2].
 Định nghĩa 2
Điện toán đám mây(cloud computing) là một mô hình tính toán phân
tán(distributed computing) với qui mô lớn. Các mô hình này có một số đặc tính như:
tính trừu tượng(abstracted), ảo hóa(virtualized), tự động mở rộng(dynamically
scalable), tính toán(computing), lưu trữ(storage), các nền tảng(platforms) và các dịch
vụ(services) cung cấp cho các yêu cầu của Khách hàng bên ngoài [3].
 Định nghĩa 3:
Một đám mây là một loại hệ thống song song(parallel) và phân tán(distributed). Nó
bao gồm một tập hợp các máy tính kết nối và ảo hóa(virtualised ) với nhau. Các tài
nguyên về hạ tầng được thống nhất và cung cấp dựa trên các cấp độ thỏa thuận về
dịch vụ(service-level agreements), được thiết lập giữa nhà cung cấp dịch vụ và người
tiêu dùng[4].
3/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
1.2 Kiến trúc của mô hình điện toán đám mây
 Mô hình kiến trúc
1.2.1 Các đặt trưng thiết yếu(Essential Characteristics)

 On-demand self-service
Các khách hàng sử dụng dịch vụ có thể yêu cầu hệ thống cung cấp các dịch vụ xử
lý, tính toán và lưu trữ một cách tự động, mà không cần phải thông qua các tương tác
từ nhà cung cấp dịch vụ.
 Truy cập với mạng lưới rộng lớn(Broad network access)
Với khả năng có sẵn và thường trực, các dịch vụ cung cấp có thể được truy cập
thông qua một hệ thống mạng. Việc truy cập này có thể thông qua một số thiết bị từ
phía khách hành như: điện thoại di động(mobile phone), laptop, PDAs, cách dụ vụ
phần mềm truyền thống…
 Tích hợp tài nguyên(Resource pooling)
Các loại tài nguyên của nhà cung cấp dịch vụ có thể được tích hợp từ nhiều nguồn
khác nhau, nhằm mục đích phục vụ yêu cầu cho nhiều khách hàng, sử dụng mô hình
nhiều người thuê. Với nhiều nguồn tài nguyên vật lý(physical) và ảo hóa(virtual) khác
4/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
nhau, các tài nguyên này có thể được phân chia và cung cấp một cách tự động theo
nhu cầu của người sử dụng.
 Khả năng đàn hồi(Rapid elasticity)
Nhằm đáp ứng nhanh các yêu cầu của người tiêu dùng, đặc biệt là khả năng sẵn
sàng cung cấp, không giới hạn về số lượng, thời gian đăng ký…Yêu cầu hệ thống phải
có khả năng tự động mở rộng, tự động triển khai và tự động đáp ứng…
 Các dịch vụ đo lường(Measured service)
Hệ thống điện toán đám mây tự động kiểm soát và tối ưu các nguồn tài nguyên
được sử dụng tương ứng với từng loại dịch vụ. Nguồn tài nguyên sử dụng có thể được
theo dõi, kiểm soát và cung cấp các báo cáo minh bạch cho cả nhà cung cấp dịch vụ
và người tiêu dùng.
1.2.2 Mô hình dịch vụ đám mây(Cloud Service Models)
 Cloud Software as a Service (SaaS)
Cung cấp cho người tiêu dùng(consumer) khả năng sử dụng các ứng dụng, dịch vụ
phần mềm và chúng được thực thi trên một cơ sở hạ tầng điện toán đám mây(cloud

infrastructure).
Các ứng dụng này có thể được truy cập từ một số thiết bị và thông qua một số giao
diện(interface), ví dụ như: trình duyệt web(web browser), web-based email,…
Người tiêu dùng(consumer) không quản lý hoặc kiểm soát các cơ sở hạ tầng điện
toán đám mây(cloud infrastructure) như: hệ thống mạng(network), máy chủ(servers),
hệ điều hành(operating systems), hệ thống lưu trữ(storage),…
 Cloud Platform as a Service (PaaS)
Cung cấp cho người tiêu dùng(consumer) khả năng tạo mới, mua lại các ứng dụng
được triển khai trên nền cơ sở hạ tầng điện toán đám mấy(cloud infrastructure), bằng
cách sử dụng một số ngôn ngữ lập trình(programming languages) và các công cụ hỗ
trợ(tools supported) từ các nhà cung cấp dịch vụ.
Người tiêu dùng(consumer) không quản lý hay kiểm soát các cơ sở hạ tầng điện
toán đám mây(cloud infrastructure) như: mạng(network), máy chủ(server), hệ điều
5/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
hành(operating systems), lưu trữ(storage). Tuy nhiên người tiêu dùng(consumer) có
thể kiểm soát việc triển khai các ứng dụng và có thể cấu hình các môi trường lưu trữ.
 Cloud Infrastructure as a Service (IaaS)
Cung cấp cho người tiêu dùng(consumer) khả năng lựa chọn một số vấn đề về như:
lưu trữ(storage), mạng(network) và các tài nguyên máy tính khác.
Người tiêu dùng có thể triển khai và sử dụng các phần mềm một cách tùy ý, trong
đó bao gồm các hệ điều hành và ứng dụng.
Người tiêu dùng không quản lý hoặc kiểm soát các cơ sở hạ tầng điện toán đám
mây nhưng có thể kiểm soát các vấn đề liên quan đến hệ điều hành, khả năng lưu trữ,
các ứng dụng triển khai và kiểm soát hạn chế đối với một số thành phần của hệ thống
mạng như: bức tường lửa,…
1.2.3 Mô hình triển khai(Deployment Models)
 Điện toán đám mây công cộng(Public Cloud)
Các cơ sở hạ tầng điện toán đám mây được cung cấp đến công chúng hoặc một
nhóm các ngành công nghiệp và nó thuộc sở hữu của một tổ chức bán các dịch vụ

điện toán đám mây.
 Điện toán đám mây riêng tư(Private Cloud)
Các cơ sở hạ tầng điện toán đám mây chỉ hoạt động cho một tổ chức duy nhất. Nó
có thể được quản lý bởi các tổ chức hoặc một bên thứ ba.
 Điện toán đám mây cộng đồng(Community Cloud)
Các cơ sở hạ tầng điện toán đám mây được chia sẻ bởi một số tổ chức và hỗ trợ cho
một cộng đồng cụ thể với các vấn đề quan tâm, chia sẻ như: nhiệm vụ, yêu cầu bảo
mật, chính sách, …Nó có thể được quản lý bởi các tổ chức hoặc một bên thứ 3.
 Điện toán đám mây kết hợp(Hybrid Cloud)
Các cơ sở hạ tầng điện toán đám mây là một thành phần của hai hay nhiều đám
mây như: đám mây riêng tư, đám mây công cộng, đám mây cộng đồng. Hybrid Cloud
vẫn là các thực thể phân biệt và liên kết với nhau dựa vào các công nghệ đã được
6/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
chuẩn hóa hoặc các công nghệ độc quyền nhằm cho phép các dữ liệu và các ứng dụng
có tính chất di động.
1.3 Một số lợi ích của mô hình điện toán đám mây
 Lợi ích về kinh doanh(Business Benefits)
o Hầu như(Almost zero) không đầu tư vào cơ sở hạ tầng trả trước.
o Chi phí cho việc sử dụng cơ sở hạ tầng chỉ được tính trong thời
gian(Just-in-time) sử dụng.
o Sử dụng nguồn lực hiệu quả, khi nào cần thì mới đăng ký sử dụng,
không đầu tư dư thừa.
o Việc sử dụng các dịch vụ điều dựa trên chi phí.
o Rút ngắn thời gian để tiếp cận nhanh với thị trường.
 Lợi ích về kỹ thuật công nghệ(Technical Benefits)
o Tự động hóa(automation) về cơ sở hạ tầng(infrastructure).
o Tự động mở rộng về quy mô(auto-scaling)
o Nâng cao khả năng kiểm tra
o Phục hồi và giải quyết nhanh các sự cố, tiếp tục hỗ trợ kinh doanh

1.4 Giới thiệu về mô hình Cloud Computing – Google Apps
[8] Google App Engine là một nền tảng điện toán đám mây của Google, cho phép
người dùng có thể phát triển và lưu trữ các ứng dụng web trong những trung tâm dữ
liệu do Google quản lý.
Google App Engine được thiết kế để lưu trữ những ứng dụng và phục vụ nhiều
người dùng một cách đồng thời. Khi một ứng dụng có thể phục vụ nhiều người dùng
một cách đồng thời mà không làm giảm hiệu suất, chúng ta gọi đó là sự co giãn
(scales). Những ứng dụng được viết cho App Engine sẽ được co giãn một cách tự
động. Càng nhiều người sử dụng chương trình, App Engine sẽ tạo ra càng nhiều tài
nguyên cho ứng dụng đó và quản lý chúng. Chính bản thân ứng dụng cũng không cần
phải biết đến các tài nguyên mà nó đang sử dụng.
7/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
Không như những server cung cấp các dịch vụ lưu trữ thông thường hay các server
có chức năng tự quản lý, với Google App Engine, chúng ta chỉ phải trả tiền cho những
tài nguyên mà chúng ta sử dụng. Hóa đơn thanh toán những nguồn tài nguyên này bao
gồm CPU chúng ta sử dụng, lưu trữ hàng tháng, băng thông vào ra (incoming and
outgoing bandwidth), và một số các tài nguyên khác của dịch vụ App Engine.
Hình 1: Mô hình điện toán đám mây App Engine của Google
Kiến trúc của App Engine khác với những server lưu trữ ứng dụng web thông
thường. App Engine sẽ hạn chế những truy cập từ những ứng dụng đến các tầng vật
lý. App Engine được xây dựng để giải quyết mối quan tâm của người dùng về sự mở
8/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
rộng và độ tin cậy. Nó được xây dựng dựa trên khái niệm có thể mở rộng theo chiều
ngang, nghĩa là thay vì ứng dụng của chúng ta sẽ được chạy trên một phần cứng mạnh
mẽ, thì nó có thể chạy trên nhiều phần cứng yếu hơn.
Các thành phần chính và chức năng của App Engine:
 Môi trường thực thi (runtime environment)
 Các file server tĩnh (static file servers)

 Kho dữ liệu (datastore)
 Thực thể (entities) và Thuộc tính (properties)
 Truy vấn (queries) và Chỉ mục (indexes)
 Phiên giao dịch (transaction)
 Các dịch vụ (services)
 Tài khoản Google (google accounts)
 Các công cụ lập trình (programming tools)
Những hạn chế của App Engine:
 App Engine hỗ trợ HTTPS đối với domain con của .appspot.com nhưng vẫn
chưa hỗ trợ đối với các domain khác.
 Hiện Google App Engine hỗ trợ 2 loại ngôn ngữ là: Python, Java
 Một số ngôn ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ
chuyển từ PHP sang Java.
 Phụ thuộc hoàn toàn vào các dịch vụ của Google.
 Microsoft, … sẽ chẳng bao giờ mua sản phẩm được xây dựng trên nền tảng của
đối thủ.
 Các nhà đầu tư e ngại vì toàn bộ dữ liệu của mình đều nằm trong tay nhà cung
cấp dịch vụ, dù cho đó là Google.
9/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
TÌM HIỂU VÀ ÁP DỤNG EUCALYPTUS CLOUD COMPUTING
PLATFORM.
1.5 Giới thiệu Eucalyptus Cloud Computing
[5] Eucalyptus là một kiến trúc phần mềm dựa trên hệ điều hành Linux, nó thực
hiện một số khả năng như: mở rộng(scalable), tăng cường hiệu quả cho một số mô
hình điện toán đám mây cá nhân(private cloud), đám mây hỗn hợp(hybrid cloud) với
một hạng tầng CNTT(infrastructure) của các doanh nghiệp. Eucalyptus cung cấp cơ sở
hạ tầng(Infrastructure) như một dịch vụ(IaaS). Điều này có nghĩa là người dùng(users)
có thể được cung cấp một số tài nguyên cá nhân(phần cứng, thiết bị lưu trữ, hạ tầng
mạng…) thông qua các giao diện(interface) của Eucalyptus trên một cơ sở cần

thiết(an as-needed basis). Một đám mây Eucalyptus được triển khai trên một trung
tâm dữ liệu của doanh nghiệp và được truy cập bởi người dùng trong một hệ thống
mạng nội bộ của doanh nghiệp.
Eucalyptus được thiết kế ở tầng thấp(ground) trong mô hình điện toán đám mây,
nhằm dễ dàng cài đặt và ngăn chặn một số truy cập trái phép từ bên ngoài. Các phần
mềm khung(framework) thì được module hóa. Eucalyptus cung cấp một lớp mạng
ảo(virtual network) để phân biệt lưu lượng truy cập của nhiều người dùng khác nhau
và cho phép hai hay nhiệu cụm(clusters) kết hợp với nhau để tạo thành một hệ thống
mạng nội bộ(LAN). Eucalyptus cũng có khả năng kết nối vận hành được với mô hình
dịch vụ điện toán đám mây công cộng S3 và EC2 của Amazon. Vì vậy Eucalyptus có
thể cung cấp cho các doanh nghiệp mô hình dịch vụ điện toán đám mây hỗn
hợp(hybrid cloud).
Eucalyptus ban đầu được phát triển chủ yếu để hỗ trợ cho các tính toán hiệu năng
cao(HPC), và được phát triển bởi nhóm nghiên cứu của giáo sư Wolski tại đại học
California. Eucalyptus được thiết kế dựa trên các nguyên tắc đảm bảo khả năng tương
thích với các trung tâm dữ liệu được cài đặt trên hệ điều hành Linux. Eucalyptus có
thể được triển khai trên các hệ điều hành Linux được phân phối như: Ubuntu, CentOS,
openSUSE, và Debia. Eucalyptus hiện nay đã được tích hợp sẵn vào các phiên bản
của hệ điều hành Ubuntu và chúng được xem như thành phần cốt lõi của Ubuntu
Enterprise Cloud.
10/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
1.6 Các thành phần của Eucalyptus Cloud Computing
Hệ thống điện toán đám mây Eucalyptus có 5 thành phần chính:
 Cloud Controller (CLC)
 Walrus
 Cluster Controller (CC)
 Storage Controller (SC)
 Node Controller (NC)
Mỗi thành phần trong hệ thống có giao diện web(Web interface) riêng và được thực

hiện như một dịch vụ web độc lập(stand-alone). Điều này có hai thuận lợi chính:
Thứ nhất mỗi dịch vụ web được định nghĩa bởi các API được thể hiện bởi ngôn
ngữ WSDL, các dịch vụ có thể input/out put các cấu trúc dữ liệu.
Thứ hai Eucalyptus tác động lên các dịch vụ web đặc biệt như: chính sách bảo mật
về sự giao tiếp giữa các thành phần, dựa trên các gói phần mềm(software packages)
được xây dựng theo tiêu chuẩn công nghiệp.
1.6.1 Cloud Controller(CLC)
Cloud Controller(CLC) là một điểm(entry-point), mà nó có thể giúp cho các quản
trị(administrator), nhà phát triển(developers), quản trị dự án(project managers) và
người dùng cuối(end users) có thể đi vào các đám mây.
Cloud Controller(CLC) chịu trách nhiệm cung cấp các thông tin truy vấn các node
cho các quản trị, thông tin các node có thể là thông tin về tài nguyên(resources). Dựa
vào các thông tin truy vấn này các quản trị node(node managers) có thể đưa ra một số
quyết định(decisions) và thực hiện chúng bằng cách yêu cầu các cụm điều
khiển(Cluster Controllers). CLC cũng là một giao diện hỗ trợ cho việc quản lý các tài
nguyên ảo hóa như: máy chủ(servers), mạng(network) và lưu trữ(storage).
1.6.2 Walrus
Walrus cho phép người dùng lưu trữ dữ liệu một cách bền vững(persistent), dữ liệu
được tổ chức thành các đối tượng, nó cho phép tạo(create), xóa(delete) và thiết lập các
cơ chế kiểm soát truy cập. Walrus là một giao diện tương thích với S3 của Amazon,
11/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
cung cấp cơ chế(mechanism) lưu trữ(storing) cho việc truy cập các hình ảnh máy ảo
và dữ liệu người dùng(user data).
1.6.3 Cluster Controller(CC)
Cluster Controller(CC) là một cụm điều khiển thường hoạt động ở bất kỳ máy tính
nào có kết nối mạng đến các máy chạy điều khiển node(NC) và máy chạy CLC. CCs
thu thập thông tin về tập hợp các máy ảo(VM) và tiến độ thực hiện các máy ảo trên
các node cụ thể. CC cũng quản lý các mạng ảo và tham gia vào việc thực hiện các
SLAs theo chỉ dẫn của CLC. Tất cả các nút liên kết với một CC trong cùng một

domain.
1.6.4 Storage Controller(SC)
Storage Controller(SC) cung cấp chức năng tương tự như khối lưu trữ Amazon
Elastic(EBS) và có khả năng giao tiếp với các hệ thống khác(NFS, iSCSI,…). EBS
không được chia sẽ cho các thể hiện(instances), nó cho phép các ảnh chụp(snapshot)
được tạo ra và lưu trữ trong một hệ thống tương tự như Walrus.
1.6.5 Node Controller(NC)
Node Controller(NC) được thực hiện trên mọi máy tính, được thiết kế để hosting
các VM instance. NC kiểm soát các hoạt động máy ảo bao gồm cả việc thực
hiện(execution), kiểm tra(inspection) và chấm dứt(termination) hoạt động của các
máy ảo. Nó cũng lấy và dọn dẹp các bản sao nội bộ như: hạt nhân(kernel), hệ thống
tập tin gốc(the root file system), hình ảnh đĩa Ram(ramdisk image). Nó truy vấn và
kiểm soát hệ thống phần mềm(hệ điều hành máy chủ và máy ảo) để đáp ứng với các
truy vấn và điều khiển từ CC. NC cũng chịu trách nhiệm cho việc quản lý các thiết bị
đầu cuối của mạng ảo.
12/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
1.7 Cài đặt và cấu hình Eucalyptus trên Ubuntu
Hướng dẫn cài đặt Eucalyptus với hệ điều hành Ubuntu 12.10
 Cài đặt Cluster Controller (CC). Storage Controller (SC), Cloud Controller và
Walrus
o sudoapt-get installeucalyptus-cloud eucalyptus-cc eucalyptus-walrus
eucalyptus-sc
 Cài đặt và cấu hình Network Time Protocol giữa hai máy
o sudoapt-get installntp
 Điều chỉnh nội dung tập tin ntp.conf như sau
o server 127.127.1.0
o fudge 127.127.1.0 stratum 10
o Retart ntp service
 Đăng ký các cluster, storage controller và walrus.

o sudoeuca_conf register-cluster cluster1 192.168.1.2
o sudoeuca_conf register-walrus 192.168.1.2
o sudoeuca_conf register-sc cluster1 192.168.1.2
 Tạo các packages cho các Node controller
o sudoapt-get installbridge-utils libcrypt-openssl-random-perl libcrypt-
openssl-rsa-perl libcrypt-openssl-x509-perl open-iscsi powernap qemu-
kvm vlan aoetools eucalyptus-nc
 Cấu hình tập tin interface
o sudo vim /etc/network/interface
o Điều chỉnh nội dung tập tin như sau:
auto lo
iface lo inet loopback
auto eth0
13/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
iface eth0 inet manual
auto br0
ifacebr0 inet static
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.2
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
o sudo /etc/init.d/networking restart
o Điều chỉnh tập tin qemu.conf với nội dung như sau:

sudovim /etc/libvirt/qemu.conf
unix_sock_group = "libvirtd"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
auth_unix_ro = "none"
auth_unix_rw = "none"
 Start và Stop libvirt
o sudo/etc/init.d/libvirt-binstop
o sudo/etc/init.d/libvirt-binstart
o chownroot:libvirtd /var/run/libvirt/libvirt-sock
o chownroot:libvirtd /var/run/libvirt/libvirt-sock-ro
14/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
1.8 Quản trị Eucalyptus
1.8.1 Giao diện quản trị(The Eucalyptus EE Web Interface)
Eucalyptus cung cấp một giao diện web thuận tiện, giúp cho các quản trị có thể
thực hiện một số công việc liên quan đến việc quản trị các dịch vụ của mô hình điện
toán đám mây. Để truy cập vào hệ thống, các quản trị phải truy cập thông qua
Eucalyptus với một tài khoản bao gồm User name và Password.
https://<IPAddress>:8443
Sau khi đăng nhập thành công vào hệ thống Eucalyptus, một trang web quản trị sẽ
hiển thị bao gồm các thành phần: Credentials, Images, Users và Groups, Reports,
Configuration, và Extras. Mỗi thành phần sẽ có các thông tin chi tiết như sau:
 Credentials
Tranng thông tin chứng nhận, cung cấp cho User các thông tin về tài khoản truy
cập vào hệ thống.
15/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
 Images
Trang images, bao gồm một danh sách các images được tạo ra bởi quản trị hệ thống

hoặc Users(Lần đầu tiên truy cập vào hệ thống thì danh sách này rỗng). Người dùng
có thể lựa chọn image từ danh sách để download và thực thi như các máy ảo trong
môi trường Eucalyptus cloud.
 Users and Groups
Trang Users và Groups cung cấp một giao diện đồ họa, giúp cho các quản trị viên
nhanh chóng tạo ra các Groups tương ứng với các tổ chức doanh nghiệp. Thêm mới,
xóa các Users cho các Group và liên kết các cụm(Cluster) với các Group lại với nhau.
 Reports
Các trang báo cáo, cung cấp cho các quản trị viên các số liệu thống kê về tình hình
hoạt động, sử dụng tài nguyên hệ thống của các Users. Điều này cho phép các quản trị
viên xác định được các nguồn tài nguyên đang được sử dụng bởi người dùng hay
nhóm nào. Thông qua đó các quản tri viên có thể tính toán và phân bổ các nguồn tài
nguyên một cách hợp lý.
 Configuration
Trang cấu hình, cung cấp cho các quản trị viên một giao diện để có thể có thiết lập
các thông số cho các mô hình điện toán đám mây như: địa chỉ máy chủ(host address),
DNS, Walrus, Cluster và dịch vụ SAN.
1.8.2 Quản trị người dùng và nhóm(Users and Groups Management)
1.8.2.1 Users and Groups Interface
1.8.2.2 Managing Users
 User Self Sign-up
Để kích hoạt các tài khoản cho các Users, các quản trị viên phải đăng nhập lần đầu
và chỉ định một địa chỉ email cho các yêu cầu ứng dụng của người dùng. Tại thời
điểm đó một liên kết “Apply for acount” sẽ xuất hiện ở trang đăng nhập. Khi người
dùng truy cập, một email sẽ được gởi đến quản trị viên và nội dung email có chứa hai
URL: một cho việc chấp nhận và một cho việc từ chối người sử dụng. Người quản trị
16/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
tiếp tục thực hiện công việc chứng thực. Quản trị viên có thể sử dụng thêm một số
thông tin của người dùng(điện thoại, vai trò, bộ phận…) để xác định danh tính của

người dùng.
Việc chấp nhận hay từ chối một yêu cầu đăng ký sẽ được gởi đến email của người
dùng. Trong trường hợp thông báo chấp nhận, người dùng sẽ thấy một liên kết để kích
hoạt tài khoản.Trước khi kích hoạt tài khoản người dùng phải đăng nhập với tên và
mật khẩu đã đăng ký. Người sử dụng sẽ được phép truy cập vào giao diện web của
Eucalyptus cloud.
 Activating User Accounts
Sau khi người dùng cung cấp một tài khoản thông qua giao diện web Eucalyptus,
tên của người sử dụng sẽ xuất hiện trong danh sách của người dùng(Users) và
nhóm(Groups). Người quản trị có thể kích hoạt tài khoản của người dùng bằng cách
chọn tên người sử dụng, chỉnh sửa thông tin và phê duyệt thông tin. Người quản trị có
thể kiểm tra thông tin và bỏ qua bước xác nhận thông tin qua email và cho phép người
dùng truy cập ngay lập tức vào hệ thống Eucalyptus.
 Adding Users
Ngoài việc phê duyệt và từ chối yêu cầu của người sử dụng thông qua email, các
quản trị viên có thể nhanh chóng: thêm, phê duyệt, cho phép, sửa đổi, và xóa các tài
khoản thông qua giao diện quản lý nhóm và người dùng như sau:
17/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
Chỉnh sửa thông tin nhiều Users.
Chúng ta có thể cập nhật thông tin cùng một lúc trên nhiều người dùng theo hình như
sau:
1.8.2.3 Working with Groups
 Adding Groups and Assigning Clusters to Groups
Chúng ta có thể thêm, xóa và sửa thông tin các group theo hình sau:
18/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
1.9 Accounting Reports
Eucalyptus cung cấp một giao diện kế toán, cho phép các quản trị viên có thể thống
kê về các hoạt động của mô hình điện toán đám mây, tình hình sử dụng các nguồn tài

nguyên. Các quản trị viên có thể sử dụng thông tin này như một cơ sở kiểm toán, phân
bổ nguồn lực và lập kế hoạch cho các đám mây.
1.9.1 Report Types
Giao diện kế toán cung cấp nhiều loại báo cáo về hoạt động của mô hình điện toán
đám mây như: các sự kiện về hệ thống(System Events), nguồn tài nguyên sử
dụng(Resource Usage), các thành phần đăng ký(Registered Components). Chúng ta có
thể xem thông tin báo cáo theo từng thời điểm lựa chọn như hình sau:
19/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
1.9.2 System Events
Hệ thống sự kiện sẽ ghi nhận thông tin lịch sử mà hệ thống đã xử lý. System Events
sẽ ghi nhận tất cả các thông tin như: thêm mới người dùng, nhóm, khởi động hệ thống,
tin nhắn phục vụ yêu cầu và thời gian sử dụng của mỗi yêu cầu. Hê thống sự kiện có
thể được sử dụng để xem xét các thay đổi về cấu hình hệ thống hoặc kết hợp với các
tập tin nhật ký khác nhằm giải quyết các vấn đề liên quan đến các sự cố.
1.9.3 Resource Usage
Các báo cáo sử dụng nguồn tài nguyên sẽ hiển thị số lượng và thời hạn sử dụng của
hai loại tài nguyên như: Instances và Storage. Với một khoảng thời gian báo cáo được
lựa chọn, các báo cáo này cung cấp các số lượng phân bổ, số lượng các đơn vị sử
dụng và số lượng đơn vị thời gian sử dụng của từng người dùng, từng nhóm về một
loại tài nguyên tương ứng.
20/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
TÌM HIỂU KIẾN TRÚC CỦA MỘT ỨNG DỤNG CLOUD
COMPUTING.
1.10 Giới thiệu
[6] Trong phần này chúng ta sẽ thảo luận về phần mềm như một dịch vụ(Software
as a Service) hay các vấn đề liên quan đến công nghệ ảo hóa(virtualization
technologies). Trọng tâm của phần này là làm thế nào để chúng ta có thể viết được
những ứng dụng, thực thi trên môi trường điện toán đám mây(cloud computing).

1.11 Tính toán lưới(Grid computing)
Điện toán lưới là một kiến trúc ứng dụng dễ dàng nhất để chuyển sang mô hình
điện toán đám mây(cloud computing). Một ứng dụng điện toán lưới là một phần mềm
xử lý chuyên sâu, các tiến trình(process) có thể được chia nhỏ thành nhiều khối và
được xử lý một cách độc lập. Thông thường thì một máy tính sẽ tốn rất nhiều thời gian
để xử lý tất cả khối dữ liệu, trong khi đó với mô hình Grid computing nhiều máy tính
có thể sử dụng CPU rảnh rỗi để cùng nhau giải quyết các vấn đề một cách nhanh
chóng.
Hình 1: Mô hình kiến trúc của một ứng dụng Grid computing
21/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
Các hệ thống thương mai(Commercial) và chính phủ(Government) thường sử dụng
các hệ thống siêu máy tính(supercomputers) kết nối với nhau thông qua một hệ thống
mạng máy tính để thực hiện các yêu cầu tính toán. Thời gian gần đây các server farms
được sử dụng để thực hiện các nhiệm vụ về xử lý hình ảnh, video. Các siêu máy
tính(supercomputer) và các server farms có chi phí rất cao, vì vậy phải đầu tư rất
nhiều chi phí cho các mô hình điện toán lưới(Grid computing).
Mô hình điện toán đám mây(Cloud computing) có chi phí thấp và dễ dàng xây
dựng một ứng dụng điện toán lưới. Nếu như chúng ta có một khối dữ liệu lớn cần xử
lý thì chúng ta chỉ cần đưa khối dữ liệu đó lên một máy chủ để xử lý. Hình 1 minh họa
quá trình xử lý của một ứng dụng điện toán lưới như sau:
 Máy chủ nhận dữ liệu yêu cầu xử lý
 Yêu cầu được đưa đến một hàng đợi chờ xử lý
 Các máy chủ khác được xem là các workers sẽ xem các message trong hàng
đợi và chờ cho đến cho đến khi các tập dữ liệu mới xuất hiện. Sau đó các máy
tính sẽ tiến hành xử lý và gởi kết quả lại cho hàng đợi
 Các thành phần có thể hoạt động độc lập với nhau, thậm chí nó có thể thực thi
khi các máy tính khác ngưng hoạt động.
Mô hình điện toán đám mây(cloud computing) ra đời nhằm giải quyết vấn đề máy
chủ, chúng ta không cần phải sở hữu các máy chủ khi không có dữ liệu để xử lý,

chúng ta có thể mở rộng số lượng máy chủ khi khối lượng dữ liệu cần xử lý tăng lên.
1.12 Thiết kế ứng dụng web(Web Application Design)
Trong phần này chúng ta sẽ thảo luận làm thế nào để triển khai một ứng dụng trên
môi trường điện toán đám mây(cloud computing), làm thế nào để xây dựng một ứng
dụng web có khả năng mở rộng cao. Mặc khác có những ứng dụng đã được xây dựng
để chạy trên một máy chủ duy nhất thì vấn đề đưa các ứng dụng này lên các đám mây
sẽ được giải quyết như thế nào.
Chúng ta không thể giải quyết hết các phức tạp của mỗi nền tảng(platform) được
dùng để phát triển các ứng dụng web. Tuy nhiên cho dùng các ứng dụng web được
22/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
xây dựng bằng bất cứ nền tảng nào(.net, ruby, java, php…) thì các ứng dụng web điều
có chung một kiến trúc theo mô hình như sau:
Hình 2: Mô hình kiến trúc của một Web Application
Hệ thống cần có một ngôn ngữ để tạo ra các nội dung từ các mẫu(templates) và dữ
liệu được hỗ trợ bởi một database.
1.12.1 Trạng thái hệ thống và giao dịch (System State and Protecting
Transactions)
Việc xác định các vấn đề khi đưa các ứng dụng lên trên các đám mây là làm thế nào
để các ứng dụng quản lý được các trạng thái(state) của chúng. Ví dụ chúng ta hãy xem
một ứng đặt phòng khách sạn được mô tả như sau:
Các dữ liệu đại diện về phòng của một khách sạn phản ánh trạng thái(Sate) của
chúng trong cơ sở dữ liệu. Vấn đề là làm thế nào để cho trạng thái của một ứng dụng
có thể thay đổi giữa thời gian người dùng tạo các yêu cầu và các giao dịch bị thay đổi.
Quá trình này có thể mô tả theo trình tự:
- Khóa các dữ liệu liên quan đến phòng
- Kiểm tra xem phòng có đang sẵn sàng
- Nếu phòng sẵn sàng thì đánh dấu và xem như nó không còn sẵn sàng nữa.
23/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt

- Mở khóa
1.12.2 Các vấn đề về khóa bộ nhớ(The problem with memory locks)
Chúng ta có thể thực hiện logic này theo nhiều cách khác nhau, tuy nhiên không
phải tất cả các cách điều thành công với môi trường điện toán đám mây. Ví dụ như
một cách tiếp cận java sau thông thường hoạt động rất tốt trên môi trường “single-
server” nhưng lại thất bại trong môi trường “multiserver”:
Nhận xét: Đoạn source code trên được trình bày bằng ngôn ngữ lập trình Java, sử
dụng từ khóa “synchronized” để khóa dữ liệu. Nếu trong môi trường “single server”
thì không có một tiến trình nào khác, tại cùng một thời điểm có thể làm thay đổi đối
tượng “Room”. Tuy nhiên nếu thực hiện trong môi trường “multiserver” thì sẽ thất
bại. Nếu chúng ta có hai khách hàng thực hiện yêu cầu đặt phòng riêng biệt trên cùng
một máy chủ, thì Java chỉ cho phép một trong hai có thể thực hiện khối đồng
bộ(synchronized block) tại cùng một thời điểm. Mặc khác nếu mỗi khách hàng cùng
đưa ra yêu cầu đặt phòng tại một thời điểm trên các máy chủ khác nhau, khi đó các
khối đồng bộ trên mỗi máy chủ có thể thực hiện đồng thời. Kết quả là khách hàng đầu
tiên sẽ bị mất phòng đã đặt, vì nó bị ghi đè bởi khách hàng thứ hai, quá trình này còn
gọi là doublebooking(Hình 3).
Một trong những phương pháp giải quyết vấn đề này trên môi trường điện toán đám
mây là sử dụng công nghệ clustering hoặc chia sẽ bộ nhớ giữa các máy chủ với nhau.
24/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt
Hình 3: Khách hàng thứ 2 ghi đè lên khách hành thứ 1
1.12.3 Ràng buộc các giao dịch bằng các thủ tục(Transactional integrity through
stored procedures)
Một trong những lợi ích chính của stored procedures là sử dụng cơ sở dữ liệu để
đảm bảo tính toàn vẹn của các giao dịch. Giải quyết vấn đề toàn vẹn là công việc
chính của cơ sở dữ liệu thay vì phải thực hiện ở các đoạn code Java. Ví dụ chúng ta có
xem xét một thủ tục được viết bằng ngôn ngữ MySQL như sau:
25/36
Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt

×