11409_Tìm hiểu giải pháp ảo hóa docker và ứng dụng

luận văn tốt nghiệp

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
——-o0o——-

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ THÔNG TIN

HẢI PHÒNG 2019
ISO 9001:2015
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
——-o0o——-

TÌM HIỂU GIẢI PHÁP ẢO HÓA
DOCKER VÀ ỨNG DỤNG

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ Thông tin

HẢI PHÒNG – 2019

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
——-o0o——-

TÌM HIỂU GIẢI PHÁP ẢO HÓA
DOCKER VÀ ỨNG DỤNG

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ Thông tin

Sinh viên thực hiện: Đinh Hải Long
Mã số sinh viên: 1412101066
Giảng viên hướng dẫn: TS. Ngô Trường Giang

HẢI PHÒNG – 2019

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
——-o0o——-

NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP

Sinh viên:
Đinh Hải Long

Mã số: 1412101099
Lớp: CT1802

Ngành: Công nghệ Thông tin
Tên đề tài: Tìm hiểu giải pháp ảo hóa docker và ứng dụng
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
1
LỜI CẢM ƠN
Trong quá trình làm đồ án vừa qua vì được sự chỉ dẫn nhiệt tình của
thầy TS. Ngô Trường Giang – Trường Đại học Dân lập Hải Phòng , em đã
hoàn thành đồ án của mình. Mặc dù em đã cố gắng với sự tận tâm của thầy,
nhưng vì thời gian và khả năng nên đồ án của em vẫn còn không tránh được
những điều thiếu sót.
Em xin chân thành và bày tỏ lòng biết ơn sâu sắc đến thầy Ngô Trường
Giang vì đã tận tình chỉ bảo, hướng dẫn và giành thời gian quý báu của mình
cho em trong thời gian qua để em có thể hoàn thành đồ án của mình đúng thời
hạn.
Em xin cảm ơn tất cả thầy cô giáo trong khoa Công nghệ thông tin vì
đã truyền đạt cho em rất các kiến thức nền tảng, chuyên ngành, chuyên môn
và chuyên sâu cực kì vững chắc trong những năm qua để em có thể hoàn
thanh được đồ án này.
Em xin cảm ơn Trường Đại Học Dân Lập Hải Phòng vì không ngừng
hỗ trợ và tạo những điều kiện tốt nhất trong những năm vừa qua để em có thể
học và thực hiện tốt đồ án.
Em xin cảm ơn gia đình, bạn bè đã hỗ trợ và cổ vũ cho em trong suốt
quá trình học tập cũng như làm đồ án để em có thể hoàn thành khóa học và đồ
án theo quy định.
Em xin chân thành cảm ơn!

Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
2
MỤC LỤC
LỜI CẢM ƠN …………………………………………………………………………………… 1
DANH MỤC HÌNH MINH HỌA
……………………………………………………….. 3
MỞ ĐẦU ………………………………………………………………………………………….. 4
CHƯƠNG 1:
Tổng quan về ảo hóa
…………………………………………………. 5
1.1 Tổng quan về ảo hóa ………………………………………………………………… 5
1.1.1
Ảo hóa …………………………………………………………………………….. 5
1.1.2
Phân loại ảo hóa
………………………………………………………………… 7
1.1.3
Các công nghệ giúp ảo hóa hệ thống ……………………………………15
1.2 Phần mềm tự do nguồn mở
………………………………………………………..28
1.2.1
Lịch sử hình thành …………………………………………………………….29
1.2.2
Những lý do nên chọn phần mềm tự do nguồn mở
…………………31
CHƯƠNG 2:
Công nghệ ảo hóa Docker………………………………………… 33
2.1 Khái niệm về công nghệ ảo hóa Docker ………………………………………33
2.1.1
Container là gì ………………………………………………………………….33
2.1.2
Công nghệ Docker …………………………………………………………….34
2.1.3
Các thành phần chính…………………………………………………………35
2.1.4
Một số khái niệm ………………………………………………………………36
2.2 Cài đặt Docker
…………………………………………………………………………41
2.2.1
Cài đặt Docker ………………………………………………………………….41
2.2.2
Cài đặt Docker compose …………………………………………………….46
CHƯƠNG 3:
Thử nghiệm ảo hóa ứng dụng với Docker
…………………. 48
3.1 Một số lệnh cơ bản với Docker ………………………………………………….48
3.2 Tạo một image và push lên hub.docker.com ………………………………..49
3.3 Chạy một image trên docker………………………………………………………52
KẾT LUẬN …………………………………………………………………………………….. 56
TÀI LIỆU THAM KHẢO………………………………………………………………… 57

Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
3

DANH MỤC HÌNH MINH HỌA
Hình 1-1 Ảo hóa network …………………………………………………………………….. 9
Hình 1-2 Full-virtualization
………………………………………………………………… 12
Hình 1-3 Paravirtualization ………………………………………………………………… 12
Hình 1-4 Hypervisor
………………………………………………………………………….. 13
Hình 1-5 Docker
……………………………………………………………………………….. 14
Hình 1-6 Mô hình các lớp tương tác trong hệ thống VMs
……………………….. 16
Hình 1-7 Mô hình cân bằng tải Clustering ……………………………………………. 19
Hình 1-8 RAID 0
………………………………………………………………………………. 22
Hình 1-9 RAID 1
………………………………………………………………………………. 23
Hình 1-10 RAID 5
…………………………………………………………………………….. 24
Hình 1-11 Raid song hành
………………………………………………………………….. 25
Hình 1-12 Raid ghép đôi (Mirror) ……………………………………………………….. 26
Hình 1-13 Mô hình lưu trữ SAN …………………………………………………………. 27
Hình 2-1 Hypervisor
………………………………………………………………………….. 35
Hình 2-2 Docker
……………………………………………………………………………….. 35
Hình 2-3 Mô hình máy chủ bình thường ………………………………………………. 37
Hình 2-4 Mô hình máy ảo VMs…………………………………………………………… 38
Hình 2-5 Mô hình ảo hóa container
……………………………………………………… 39
Hình 2-6 Hệ thống file cắt lớp Container ……………………………………………… 40
Hình 2-7 Sự khác biệt giữa Docker và VMs………………………………………….. 40
Hình 2-8 Khóa GPG cho kho lưu trữ Docker ………………………………………… 42
Hình 2-9 Thêm kho lưu trữ Docker ……………………………………………………… 42
Hình 2-10 Cập nhật cở sở dữ liệu
………………………………………………………… 43
Hình 2-11 Cập nhật cơ sở dữ liệu
………………………………………………………… 43
Hình 2-12 Cài đặt Docker…………………………………………………………………… 44
Hình 2-13 Hello-world ………………………………………………………………………. 44
Hình 2-14 Lỗi khi không có tiền tố sudo ………………………………………………. 45
Hình 2-15 Giải pháp cho tiền tố sudo
…………………………………………………… 45
Hình 2-16 Câu lệnh không cần tiền tố sudo…………………………………………… 46
Hình 2-17 Kiểm tra version docker compose ………………………………………… 47
Hình 3-1 Dockerfile…………………………………………………………………………… 49
Hình 3-2 Build image ………………………………………………………………………… 51
Hình 3-3 Push image …………………………………………………………………………. 51
Hình 3-4 Image được push lên hub.docker.com …………………………………….. 52
Hình 3-5 Cài đặt wordpress ………………………………………………………………… 54
Hình 3-6 Màn khởi động wordpress …………………………………………………….. 54
Hình 3-7 Màn thông tin của trang chuẩn bị tạo ……………………………………… 55

Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
4
MỞ ĐẦU
Ảo hóa là công nghệ cho phép chạy đồng thời nhiều VM (Virtual
Machine) trên cùng phần cứng vật lý . Cùng chia sẽ tài nguyên phần cứng và
được quản lý bởi lớp ảo hóa (Hypervisor), được quản lý cấp phát tài nguyên
hợp lý, tránh lãng phí …
Một số trung tâm dữ liệu chỉ sử dụng 10% đến 30% năng lực xử lý hiện
có của họ. Ảo hóa đã giúp nhiều tổ chức có thể chia sẻ các tài nguyên công
nghệ thông tin theo cách tốn ít giá thành nhất, làm cho cơ sở hạ tầng công
nghệ thông tin trở nên linh động và bảo đảm cung cấp một cách tự động với
những nhu cầu cần thiết. Các doanh nghiệp luôn tìm giải pháp để tiết kiệm
hơn, đây cũng là lúc công nghệ ảo hóa tìm được chỗ đứng vững chắc trong
lĩnh vực công nghệ thông tin trên thế giới. Sử dụng công nghệ ảo hóa đã đem
đến cho người dùng sự tiện ích, có thể chạy nhiều hệ điều hành, nhiều hệ
thống đồng thời trên cùng một hệ thống phần cứng máy chủ, mở rộng khả
năng lưu trữ, cung cấp tài nguyên phần cứng.
Công nghệ ảo hóa Docker là công nghệ mới, có khả năng phát triển
mạnh mẽ trong tương lai. Đây là lý do em chọn đề tài “Tìm hiểu giải pháp ảo
hóa Docker và ứng dụng” để triển khai.
Đồ án này trình bày về giải pháp ảo hóa Docker và ứng dụng, nội dung
của đồ án bao gồm:
Chương 1: Tổng quan về công nghệ ảo hóa.
Chương 2: Công nghệ ảo hóa Docker.
Chương 3: Thử nghiệm ảo hóa ứng dụng với Docker.
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
5
CHƯƠNG 1: Tổng quan về ảo hóa
1.1 Tổng quan về ảo hóa
1.1.1 Ảo hóa
Ảo hóa là việc chia phần cứng vật lý thành nhiều phần cứng ảo. Vì vậy,
có thể nói ảo hóa là việc chia một máy vật lý thành nhiều máy con ảo.
Công nghệ ảo hóa là một công nghệ thực hiện ảo hóa trên máy tính, bao
gồm các kỹ thuật và quy trình thực hiện ảo hóa. Các kỹ thuật và quy trình này
để tạo ra một tầng trung gian giữa hệ thống phần cứng máy tính và phần mềm
chạy trên nó. Ý tưởng ban đầu của công nghệ ảo hóa là từ một máy vật lý đơn
lẻ có thể tạo thành nhiều máy ảo độc lập. Nó cho phép tạo nhiều máy ảo trên
một máy chủ vật lý, mỗi một máy ảo cũng được cấp phát tài nguyên phần
cứng như máy thật gồm có RAM, CPU, Card mạng, ổ cứng, các tài nguyên
khác và hệ điều hành riêng. Khi chạy ứng dụng, người sử dụng không nhận
biết được ứng dụng đó chạy trên lớp phần cứng ảo. người sử dụng chỉ chú ý
tới khái niệm logic về tài nguyên máy tính hơn là khái niệm vật lí về tài
nguyên máy tính[2].
Máy chủ trong các hệ thống CNTT ngày nay thường được thiết kế để
chạy một hệ điều hành và một ứng dụng. Điều này không khai thác triệt để
hiệu năng của hầu hết các máy chủ rất lớn. Ảo hóa cho phép ta vận hành
nhiều máy chủ ảo trên cùng một máy chủ vật lý, dùng chung các tài nguyên
của một máy chủ vật lý qua nhiều môi trường khác nhau. Các máy chủ ảo
khác nhau có thể vận hành nhiều hệ điều hành và ứng dụng khác nhau trên
cùng một máy chủ vật lý.
Kỹ thuật ảo hóa đã không còn xa lạ kể từ khi Vmware giới thiệu sản
phẩm Vmware Workstation đầu tiên vào năm 1999. Sản phẩm này ban đầu
được thiết kế để hỗ trợ việc phát triển và kiểm tra phần mềm. Nó đã trở lên
phố biến nhờ khả năng tạo ra những máy tính “ảo” chạy đồng thời nhiều hệ
điều hành khác nhau trên cùng một máy tính “thực”(khác với chế độ “khởi
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
6
động kép ” – máy tính được cải nhiều hệ điều hành và có thể chọn lúc khởi
động nhưng mỗi lúc chỉ làm việc được với một hệ diều hành).
Vmware đã được EMC – hãng chuyên về lĩnh vực thiết bị lưu trữ mua
lại vào tháng 12 năm 2003. EMC đã mở rộng tầm hoạt động lĩnh vực ảo hóa
từ máy tính để bàn đến máy chủ và hiện hãng vẫn giữ vai trò thống lĩnh thị
trường ảo hóa, tuy nhiên Vmware không giữ vị trí “độc tôn” mà phải cạnh
tranh với rất nhiề sản phẩm ảo hóa các hãng khách như Virtualization Engine
của IBM, Hyper V – Microsoft, Virtuozzo của SWSoft và vitual iron của iron
software… và ảo hóa cũng không còn bó hệp trong một lĩnh vực mà đã mở
rộng cho toàn bộ hạ tầng công nghệ thông tin, từ phần cứng như chip xử lý
cho đến hệ thống máy chủ và cả hệ thống mạng.
Hiện nay, Vmware là hãng đẫn đầu thị trường ảo hóa nhưng không phải
là hãng tiên phong, vai trò thuộc về IBM với hệ thống ảo hóa VM/370 nổi
tiếng được công bố vào năm 1972 và “ảo hóa” vẫn đang hiện diện trong các
hệ thống máy chủ của IBM.
Giữa năm 1960, IBM’s Cambridge Scientific Center đã tiến hành phát
triển sản phẩm CP-40, sản phẩm đầu tiên của dòng CP/CMS. Nó được chính
thức đưa vào sản xuất vào tháng 1 năm 1967. Ngay từ khi thiết kế CP-40 đã
đặt mục đích phải sử dụng ảo hóa đầy đủ. Để làm được vấn đề này nó yêu cầu
phần cứng và đoạn mã của S/360-40 phải kết hợp hoàn chỉnh với nhau, nó
phải cung cấp cách truy cập địa chỉ vung nhớ, tập lệnh CPU và các tính năng
ảo hóa.
Năm 1970 IBM công bố sản phẩm System 370. Nhưng điều khiến
người dùng thất vọng nhất về sản phẩm này do nó không có tính năng Virtial
memory.
Vào tháng 8 năm 1999, Vmware giới thiệu sản phẩm ảo hóa đầu tiên
hoạt dộng trên nên tảng x86. Vmware Virtual Platform…
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
7
Trước đây chúng ta phải mất tiền mua bản quyền sử dụng của
Vmware’s Workstion. Nhưng năm 2005 Vmware đã quyết định cung cấp sản
phẩm ảo hóa chất lượng cao cho người dùng miễn phí. Tuy nhiên chức năng
tạo máy chủ ảo và các tính năng phụ khác nhằm mục đích tăng hiệu suất sử
dụng máy ảo đã bị lược bỏ.
Năm 2006 đây là năm ảo hóa có một bước tiến mới trong quá trình phát
triển, đó là sự ra dời của Application Virtualization và Application Streaming.
Năm 2008, Vmware giới thiệu phiên bản Vmware workstation 6.5 beta,
sản phẩm đầu tiên cho phép các chương trình cuả windows và linux được sử
dụng Direct X9 để tăng tốc xử lý hình ảnh trong máy ảo Windows XP[12].
1.1.2 Phân loại ảo hóa
1.1.2.1 Ảo hóa mạng
Ảo hóa hệ thống mạng là một tiến trình hợp nhất tài nguyên, thiết bị
mạng cả phần cứng lẫn phần mềm thành một hệ thống mạng ảo. Sau đó, các
tài nguyên này sẽ được phân chia thành các channel và gắn với một máy chủ
hoặc một thiết bị nào đó.
Có nhiều phương pháp để thực hiện việc ảo hóa hệ thống mạng. Các
phương pháp này tùy thuộc vào các thiết bị hỗ trợ, tức là các nhà sản xuất
thiết bị đó, ngoài ra còn phụ thuộc vào hạ tầng mạng sẵn có, cũng như nhà
cung cấp dịch vụ mạng (ISP).Sau đây là một vài mô hình ảo hóa hệ thống
mạng:
 Ảo hóa lớp mạng (Virtualized overlay network): Trong mô hình này,
nhiều hệ thống mạng ảo sẽ cùng tồn tại trên một lớp nền tài nguyên
dùng chung. Các tài nguyên đó bao gồm các thiết bị mạng như router,
switch, các dây truyền dẫn, NIC (network interface card). Việc thiết lập
nhiều hệ thống mạng ảo này sẽ cho phép sự trao đổi thông suốt giữa
các hệ thống mạng khác nhau, sử dụng các giao thức và phương tiện
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
8
truyền tải khác nhau, ví dụ như mạng Internet, hệ thống PSTN, hệ thống
Voip.
 Mô hình ảo hóa của Cisco: đó là phân mô hình ảo hóa ra làm 3 khu vực,
với các chức năng chuyên biệt. Mỗi khu vực sẽ có các liên kết với các
khu vực khác để cung cấp các giải pháp đến tay người dùng 1 cách
thông suốt.
Các thành phần mạng trong cơ sở hạ tầng mạng như Switch, Card
mạng, được ảo hoá một cách linh động. Switch ảo cho phép các máy ảo trên
cùng một máy chủ có thể giao tiếp với nhau bằng cách sử dụng các giao thức
tương tự như trên thiết bị chuyển mạch vật lý mà không cần phần cứng bổ
sung. Chúng cũng hỗ trợ VLAN tương thích với việc triển khai VLAN theo
tiêu chuẩn từ nhà cung cấp khác, chẳng hạn như Cisco.
Một máy ảo có thể có nhiều card mạng ảo, việc tạo các card mạng ảo
này rất đơn giản và không giới hạn số card mạng tạo ra.Ta có thể nối các máy
ảo này lại với nhau bằng một Switch ảo. Điều đặc biệt quan trọng, tốc độ
truyền giữa các máy ảo này với nhau thông qua các switch ảo được truyền với
tốt độ rất cao theo chuẩn GIGABITE(1GB), đẫn đến việc đồng bộ giữa các
máy ảo với nhau diễn ra rất nhanh.
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
9

Hình 1-1 Ảo hóa network
1.1.2.2 Ảo hóa lưu trữ
Ảo hóa hệ thống lưu trữ về cơ bản là sự mô phỏng, giả lập việc lưu trữ
từ các thiết bị lưu trữ vật lý. Các thiết bị này có thể là băng từ, ổ cứng hay kết
hợp cả 2 loại. Việc làm này mang lại các ích lợi như việc tăng tốc khả năng
truy xuất dữ liệu, do việc phân chia các tác vụ đọc, viết trong mạng lưu trữ.
Ngoài ra, việc môt phỏng các thiết bị lưu trữ vật lý cho phép tiết kiệm thời
gian hơn thay vì phải định vị xem máy chủ nào hoạt động trên ổ cứng nào để
truy xuất.
Hiện nay các nhà lưu trữ đã cung cấp giải pháp lưu trữ hiệu suất cao
cho khách hàng của họ trong một thời gian kha khá. Trong hình thức cơ bản
nhất của nó, lưu trữ ảo hóa tồn tại trong việc ta lắp ráp nhiều ổ đĩa vật lý
thành một thực thể duy nhất để các máy chủ lưu trữ và chạy hệ điều hành
chẳng hạn như triển khai RAID. Điều này có thể được coi là ảo bởi vì tất cả
các ổ đĩa được sử dụng và tương tác như một ổ đĩa logic duy nhất, mặc dù bao
gồm hai hoặc nhiều ổ đĩa trong.
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
10
Một công nghệ ảo hoá lưu trữ khá nổi bật là SAN (Storeage Area
Network – lưu trữ qua mạng). SAN là một mạng được thiết kế cho việc thêm
các thiết bị lưu trữ cho máy chủ một cách dễ dàng như: Disk Aray
Controllers, hay Tape Libraries.
Với những ưu điểm nổi trội SAN đã trở thành một giải pháp rất tốt cho
việc lưu trữ thông tin của doanh nghiệp hay tổ chức. SAN cho phép kết nối từ
xa tới các thiết bị lưu trữ trên mạng như: Disks và Tape drivers. Các thiết bị
lưu trữ trên mạng, hay các ứng dụng chạy trên đó được thể hiện trên máy chủ
như một thiết bị của máy chủ (as locally attached divices).
Có hai đặc điểm cơ bản trong các thành phần của SAN:
 Mạng (network) có tác dụng truyền thông tin giữa thiết bị lưu trữ và hệ
thống máy tính. Một SAN bao gồm một cấu trúc truyền tin, nó cung cấp
kết nối vật lý, và quản lý các lớp, tổ chức các kết nối, các thiết bị lưu
trữ, và hệ thống máy tính sao cho dữ liệu truyền trên đó với tốc độ cao
và tính bảo mật;
 Một hệ thống lưu trữ bao gồm các thiết bị lưu trữ, hệ thống máy tính,
hay các ứng dụng chạy trên nó, và một phần rất quan trọng là các phần
mềm điều khiển, quá trình truyền thông tin qua mạng.
1.1.2.3 Ảo hóa máy chủ
Một máy chủ riêng ảo tiếng anh Virtual Private Server, máy chủ ảo hoá
là một phương pháp phân vùng một máy chủ vật lý thành nhiều máy chủ ảo,
mỗi máy chủ có khả năng của riêng của mình chạy trên máy tính dành riêng.
Mỗi máy chủ ảo riêng của nó có thể chạy hệ điều hành khác nhau, và mỗi
máy chủ ảo có thể được khởi động lại độc lập.
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
11

Lợi thế của ảo hóa máy chủ:
 Tiết kiệm được chi phí đầu tư máy chủ ban đầu;
 Hoạt động hoàn toàn như một máy chủ riêng;
 Có thể dùng máy chủ ảo hoá cài đặt các ứng dụng khác tùy theo nhu
cầu của doanh nghiệp;
 Bảo trì sửa chữa nâng cấp nhanh chóng và dễ dàng;
 Dễ dàng nâng cấp tài nguyên RAM, HDD, băng thông khi cần thiết;
 Có thể cài lại hệ điều hành từ 5-10 phút;
 Không lãng phí tài nguyên.
Có hai môi trường máy chủ ảo hoá: ảo hoá toàn phần (Full
virtualization) và ảo hoá một nửa (Paravirtualization).
1.1.2.3.1 Full-virtualization
Phần cứng được mô phỏng để mở rộng chạy những hệ điều hành khách
trên nền tảng ảo hóa.Điều này có nghĩa rằng các thiết bị phần cứng khác nhau
đều được mô phỏng.Thông thường, có nhiều nền tảng ảo hóa cố gắng chạy
nhiều sự ủy nhiệm trên CPU chính (chạy nhanh hơn nhiều so với CPU mô
phỏng) nhằm nắm bắt và xử lý các sự ủy nhiệm một cách thích hợp.
Một số nền tảng ảo hóa hỗ trợ hoặc yêu cầu CPU mở rộng để hỗ trợ ảo
hóa. Trên 1 số những dòng chíp mới như x86 và x86_64 CPUs được cung cấp
thông qua VT-X (Intel) và AMD-V (AMD).Chúng được gọi là Phần Cứng Hỗ
Trợ Ảo Hóa (hardware-assisted full-virtualization).
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
12

Hình 1-2 Full-virtualization
1.1.2.3.2 Paravirtualization
là một phương pháp ảo hóa máy chủ khác. Với phương pháp ảo hóa
này, thay vì mô phỏng một môi trường phần cứng hoàn chỉnh, phần mềm ảo
hóa này là một lớp mỏng (Hypervisor) dồn các truy cập các hệ điều hành máy
chủ vào tài nguyên máy vật lý cơ sở.

Hình 1-3 Paravirtualization
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
13
1.1.2.4 Ảo hóa ứng dụng
Ảo hóa ứng dụng là một dạng công nghệ ảo hóa khác cho phép chúng
ta tách rời mối liên kết giữa ứng dụng và hệ điều hành và cho phép phân phối
lại ứng dụng phù hợp với nhu cầu user. Môt ứng dụng được ảo hóa sẽ không
được cài đặt lên máy tính một cách thông thường, mặc dù ở góc độ người sử
dụng, ứng dụng vẫn hoạt động một cách bình thường. Việc quản lý việc cập
nhật phần mềm trở nên dễ dàng hơn, giải quyết sự đụng độ giữa các ứng dụng
và việc thử nghiệm sự tương thích của chúng cũng trở nên dễ dàng hơn. Hiện
nay đã có khá nhiều chương trình ảo hóa ứng dụng như VirtualBox, Vagrant,
Docker, Citrix XenApp, Microsoft Application Virtualization, Vmware
ThinApp…
Ảo hóa ứng dụng là giải pháp tiến đến công nghệ “điện toán đám mây”
cho phép ta sử dụng phần mềm của công ty mà không cần phải cài phần mềm
này vào bất cứ máy tính con nào[11].

Hình 1-4 Hypervisor
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
14

Hình 1-5 Docker
Giải pháp Ảo Hóa Ứng Dụng cho ta những lợi ích nổi trội sau:
 Tất cả các máy tính đều có thể sử dụng phần mềm ảo như đang cài trên
máy tính của mình mà không phải lo về cấu hình (ví dụ chạy Photoshop
trên máy P4 chỉ có 512 MB RAM). Tốc độ phần mềm luôn ổn định và
ko phụ thuộc vào cấu hình từng máy;
 Các máy tính con luôn ở trong tình trạng sạch và chạy nhanh hơn. Lọai
bỏ hòan tòan việc phải sửa lỗi phần mềm do virus, spyware hoặc do
người dùng sơ ý;
 Cho phép sử dụng phần mềm mà không phải quan tâm đến hệ điều hành
ta đang sử dụng (ví dụ: ta có thể dùng Microsoft Office 2007 ngay trong
Linux, Windows 98 hoặc MAC-OS);
 Ta có thể phân phối phần mềm 1 cách linh động đến 1 số cá nhân hoặc
nhóm có nhu cầu sử dụng thay vì cài vào tất cả mọi máy như cách phổ
thông. Việc phân phối hoặc gỡ bỏ phần mềm ra các máy tính có thể
diễn ra chỉ trong vòng chỉ vài giây thay vì hàng tuần nếu như công ty có
hàng chục máy tính;
 Thông tin luôn luôn được lưu trữ an toàn ở server trung tâm thay vì có
thể phân tán ra từng máy con. Cho dù ta ở bất cứ nơi nào (tại 1 máy tính
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
15
khác, tại nhà hay thậm chí ở internet cafe), việc truy nhập và sử dụng
phần mềm của doanh nghiệp trở nên dễ dàng qua 1 hệ thống bảo mật
hiện đại nhất.
Ảo hóa ứng dụng là giải pháp cho phép sử dụng và quản lý phần mềm
doanh nghiệp 1 cách hiệu quả có hệ thống. Tiết kiệm tối đa chi phí bảo trì, hỗ
trợ kỹ thuật và quản lý từng máy tính.
Trong ảo hóa ứng dụng thì công nghệ ảo hóa Docker đang được đánh
giá là tương lai của công nghệ ảo hoá (future of virtualization), Công nghệ
này là sản phẩn của một dự án phần mềm tự do nguồn mở phát hành theo giấy
phép Apache. Khác biệt lớn của Docker và các công nghệ ảo hóa khác đó là
tiết kiệm đáng kể nguồn lực sử dụng. Với docker có thể chạy 20 container
(tương tự như một hệ điều hành nhỏ) trên cùng một máy host (host machine),
mà nếu sử dụng công nghệ ảo hóa khác như Vagrant sẽ cần một máy chủ với
cấu hình rất lớn. Docker làm được điều này là bởi vì khác với Virtual
Machine ở chỗ thay vì tách biệt giữa hai môi trường guest và host, thì các
container của Docker chia sẻ các resource với host machine[3].
1.1.3 Các công nghệ giúp ảo hóa hệ thống
1.1.3.1 Công nghệ máy ảo
Máy ảo là một máy tính được cài trên một hệ điều hành khác hay một
máy tính khác. Một máy ảo cũng bao gồm phần cứng, các ứng dụng phần
mềm và hệ điều hành. Điều khác biệt ở đây là lớp phần cứng của máy ảo
không phải là các thiết bị thường mà chỉ là một môi trường hay phân vùng mà
ở đó nó được cấp phát một số tài nguyên như là chu kì CPU, bộ nhớ, ỗ
đĩa….Công nghệ máy ảo cho phép cài và chạy nhiều máy ảo trên một máy
tính vật lý. Mỗi máy ảo có một hệ điều hành máy khách riêng lẻ và được phân
bố tài nguyên, ổ cứng, card mạng và các tài nguyên phần cứng khác một cách
hợp lý. Việc phân bố tài nguyên này phụ thuộc vào nhu cầu của từng máy ảo
ứng dụng và cũng tùy thuộc vào phương pháp ảo hóa được dùng. Đặc biệt khi
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
16
máy ảo cần truy xuất tài nguyên phần cứng thì nó hoạt động giống như một
máy thật hoàn chỉnh. Vì chỉ là một tập tin được phân vùng trên ổ đĩa nên việc
di chuyển các máy ảo từ máy chủ này sang máy chủ khác là rất dễ dàng và
không cần quan tâm đến vấn đề tương thích phần cứng hay ảnh hưởng tới
máy chủ.

Hình 1-6 Mô hình các lớp tương tác trong hệ thống VMs
Trong kiến trúc của một bộ xử lý ảo hóa được chia thành 4 lớp . Lớp 0
là lớp có quyền cao nhất có thể truy cập và can thiệp sâu nhất đến tài nguyên
phần cứng.
Lớp 0 thường là các hệ điều hành chủ được cài trên chính máy chủ.
Lớp 1 là lớp ảo hóa Hypervisor. Lớp này dùng đề quản lý và phân phối tài
nguyên đến các máy ảo. Lớp 2 là các hệ điều hành khách chạy trên các máy
ảo. Để truy cập tài nguyên phần cứng nó phải liên lạc với lớp ảo hóa và phải
qua hệ điều hành máy chủ. Lớp có quyền can thiệp thấp nhất đến tài nguyên
là lớp 3 là các ứng dụng hoạt động trên các máy ảo.
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
17
Trong các hệ thống máy tính lớn dùng để xử lý các ứng dụng thương
mại và khoa học (mainframe), hệ điều hành chạy trên phần cứng máy thực ở
chế độ ưu tiên vì chỉ có hệ điều hành chủ mới được phép sửa đổi và can thiệp
vào phần cứng bên dưới nó. Còn máy ảo làm việc ở chế độ giới hạn vì phần
cứng mà nó nhìn thấy chỉ là các thiết bị ảo. Khi máy ảo yêu cầu các lệnh hoặc
tiến trình thông thường thì hệ điều hành chủ sẽ chuyển tiếp chúng đến bô xử
lý để thực thi trực tiếp, còn đối với các lệnh hoặc các tiến trình đặc biệt nhạy
cảm can thiệp sâu đến phần cứng bên dưới sẽ bị chặn lại vì có thể làm ảnh
hưởng tới hệ thống và máy ảo còn lại. Hệ điều hành chủ sẽ thực thi lệnh với
bộ xử lý trên máy thực rồi sau đó mô phỏng kết quả rồi trả về cho máy ảo.
Đây là cơ chế nhằm cách ly máy ảo với máy thực để đảm bảo an toàn hệ
thống.
1.1.3.2 Hệ thống cân bằng tải
Trong xu hướng công nghệ, máy chủ là trái tim của của mạng máy tính,
nếu máy chủ mạng hỏng, hoạt động của hệ thống sẽ bị ngưng trệ. 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 máy chủ mạng. Giải pháp hiệu quả được
đưa ra là sử dụng một nhóm server cùng thực hiện một chức nǎng dưới sự
điều khiển của một công cụ phân phối tải – Giải pháp cân bằng tải (Load
Balancing). Có rất nhiều hãng đưa ra giải pháp cân bằng tải như Cisco,
Coyote Point, Sun Microsystems… với rất nhiều tính nǎng phong phú.
Load Balancing là một công nghệ có khả năng chia tải và nâng cao khả
năng chịu lỗi của hệ thống. Load Balancing không chỉ làm nhiệm vụ phân
phối tải cho các server mà còn cung cấp cơ chế đảm bảo hệ thống server luôn
khả dụng trước các client và nhu cầu truy cập từ internet.
Hiện nay có 2 loại cân bằng tải được áp dụng:
1.Cân bằng tải sử dụng phần cứng: sử dụng các mođun cắm thêm trên
các thiết bị chuyên dụng như Bộ định tuyến (Router) hay bộ chuyển mạch
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
18
(Switch) để chia tải theo luồng, thường hoạt động từ layer 4 trở xuống. Vì sử
dụng thiết bị chuyên dụng nên có hiệu năng cao, tính ổn định cao, khả năng
mở rộng tốt hơn nhưng khó phát triển được tính năng bảo mật phức tạp.
Thường sử dụng các thiết bị của Cisco, F5, Citrix,…
2.Cân bằng tải sử dụng phần mềm: Sử dụng phần mềm cài trên server
để kết hợp nhiều server một cách chặt chẽ tạo thành một server ảo (virtual
server). Cách này có ưu điểm là có thể chia sẻ được nhiều tài nguyên trong hệ
thống, theo dõi được trạng thái của các máy chủ trong nhóm để chia tải hợp
lý. Tuy nhiên, do sử dụng phần mềm trên server, tính phức tạp cao nên khả
năng mở rộng của giải pháp này bị hạn chế, phức tạp khi triển khai cũng như
khắc phục khi xảy ra sự cố, có rào cản về tính tương thích, khó có được
những tính năng tăng tốc và bảo mật cho ứng dụng. Thường sử dụng các giải
pháp Proxy, DNS load balancing, Round Robin NDS,…
1.1.3.3 Hệ thống cân bằng tải mạng
Công nghệ cân bằng tải mạng (Load Balancing) là một công nghệ có
khả năng chia tải và nâng cao khả năng chịu lỗi của hệ thống. Được dùng cho
các ứng dụng Stateless applications (các ứng dụng hoạt động mang tính nhất
thời) như Web, File Tranfer Protocol (FTP), Virtual Private Network
(VPN)… Trong hệ thống NLB sẽ bao gồm các cụm server được cấu hình
tương tự nhau (có thể được đặt rải rác ở nhiều nơi) cùng hoạt động để phân
phối khối lượng công việc giữa các máy chủ trong hệ thống, giúp hệ thống
giảm bớt gánh nặng khi phân bố tải.
Nhược điểm của NLB là mỗi cụm server phải dùng riêng một nơi lưu
trữ cục bộ (Local Storage) cho nên cần phải có quá trình đồng bộ hóa dữ liệu
ở mỗi nơi lưu trữ, số lượng cụm server càng nhiều thì thời gian cho việc đồng
bộ hóa càng lâu, chính vì điều này nên ta không nên triển khai các ứng dụng
Stateful applications (các ứng dụng hoạt động thường xuyên trong thời gian
dài) như các database server: Microsoft SQL Server, Microsoft Exchange
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
19
Server, File and Print Server… trên kỹ thuật NLB này nhằm đảm bảo tính
chính xác của dữ liệu.
1.1.3.4 Hệ thống cân bằng tải clustering
Đây là công nghệ được dùng rộng rãi cho các hệ thống cần độ sẵn sàng
phục vụ cao, đây là giải pháp được đặc biệt quan tâm do tính kinh tế, đa dạng
và khả nǎng dịch vụ cao. Công nghệ này có thể sử dụng phần cứng chuyên
dụng để cung cấp một môi trường với độ tin cậy cao đảm bảo cho các dịch vụ
có thể hoạt động trơn tru mà không bị dừng bởi một vài lỗi nhỏ; hoặc cũng có
thể được thiết kế để chạy trên các phần cứng thông dụng mà vẫn đạt được các
yêu cầu:
 Tăng cường khả năng mở rộng;
 Nâng cao hiệu suất;
 Tính sẵn sàng cao và khắc phục sự cố.

Hình 1-7 Mô hình cân bằng tải Clustering
Với hệ thống sử dụng công nghệ clustering, trong quá trình khởi tạo
cấu hình của hệ thống sẽ bao gồm một hệ thống với các nút chính chủ động
(active primary node) và một hệ thống với các nút phụ bị động sao lưu
(passive backup node). Trong hệ thống này các nút chủ động và bị động cần
có cùng cấu hình và được sử dụng công nghệ lưu trữ SAN hoặc Raid (Raid 1)
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
20
Nút đang hoạt động (active node) sẽ đáp lại các yêu cầu về dịch vụ
thông qua một địa chỉ IP ảo (Virtual IP hay VIP). Địa chỉ VIP là một địa chỉ
IP và nó chỉ khác so với địa chỉ IP thông thường của một nút đang hoạt động.
Hệ thống bị động (gồm các nút không hoạt động) sẽ không trực tiếp
chạy dịch vụ, thay vào đó nó quản lí các dịch vụ của nút chủ động đang hoạt
động, và đảm bảo chắc chắn là nút đang hoạt động vẫn phải đang còn hoạt
động. Nếu nút không hoạt động phát hiện ra 1 vấn đề nào đó với hoặc là nút
hoạt động hoặc dịch vụ đang chạy trên nó, thì một thông báo lỗi sẽ được khởi
tạo.Khi có lỗi, hệ thống clustering sẽ thực hiện các bước sau:
 Bước 1: Nút đang hoạt động sẽ trực tiếp ngắt hết các dịch vụ đang chạy
và các kết nối;
 Bước 2: Nút không hoạt động sẽ khởi động các dịch vụ tương đương
với các dịch vụ của máy chủ động;
 Bước 3: Nút đang hoạt động sẽ ngắt không sử dụng địa chỉ VIP;
 Bước 4: Nút không hoạt động bây giờ lại chuyển thành nút đang hoạt
động, và ở chế độ sử dụng địa chỉ VIP;
 Bước 5: Nếu nó vẫn đang hoạt động và đang duy trì kết nối mạng, nút
trước kia là chủ động thì bây giờ trở thành nút bị động, bắt đầu giám sát
các dịch vụ của nút chủ động.
1.1.3.5 Công nghệ RAID
Vào cuối những năm 1980 và đầu 1990, các nhà cung cấp dịch vụ công
nghệ thông tin đã phải đối mặt với việc tăng nhanh một khối lượng khổng lồ
các dữ liệu cần được lưu trữ. Các công nghệ lưu trữ đang trở nên rất đắt để đặt
một số lượng lớn ổ cứng có khả năng cao trên các máy chủ. RAID ra đời đã
giải quyết vấn đề trên.
RAID được định nghĩa như thế nào? Trước hết RAID là viết tắt của
Redundant Array of Inexpensive Disks (Hệ thống đĩa dự phòng). Đây là hệ
Tìm hiểu giải pháp ảo hóa Docker và ứng dụng

Đinh Hải Long _ CT1802
21
thống hoạt động bằng cách kết nối một dãy các ổ cứng có chi phí thấp lại với
nhau để hình thành một thiết bị nhớ đơn có dung lượng lớn hỗ trợ hiệu quả
cao và đáng tin cậy hơn so với các giải pháp trước đây. RAID được sử dụng
và triển khai thành phương pháp lưu trữ trong doanh nghiệp và các máy chủ,
nhưng trong 5 năm sau đó RAID đã trở nên phổ biến đối với mọi người dùng.
Lợi thế của RAID:
Có 3 lý do chính để áp dụng RAID:
Dự phòng;
Hiệu quả cao;
Giá thành thấp.
Sự dự phòng là nhân tố quan trọng nhất trong quá trình phát triển RAID
cho môi trường máy chủ. Dự phòng cho phép sao lưu dữ liệu bộ nhớ khi gặp
sự cố. Nếu một ổ cứng trong dãy bị trục trặc thì nó có thể hoán đổi sang ổ
cứng khác mà không cần tắt cả hệ thống hoặc có thể sử dụng ổ cứng dự
phòng. Phương pháp dự phòng phụ thuộc vào phiên bản RAID được sử dụng.
Khi áp dụng các phiên bản RAID mạnh bạn có thể thấy rõ hiệu quả
tăng cao của nó. Hiệu quả cũng tùy thuộc vào số lượng ổ cứng được liên kết
với nhau và các mạch điều khiển.
Tất cả các nhà quản lý những tập đoàn CNTT đều muốn giảm giá
thành. Khi chuẩn RAID ra đời, giá thành là một vấn đề chủ chốt. Mục tiêu của
các dãy RAID là cung cấp bộ nhớ tốt hơn cho hệ thống so với việc sử dụng
riêng biệt các ổ đĩa có dung lượng lớn.
Có 3 cấp độ RAID sử dụng cho hệ thống máy tính để bàn là RAID 0,
RAID 1 và RAID 5. Trong nhiều trường hợp thì chỉ hai trong ba cấp trên là có
hiệu lực và một trong hai kỹ thuật được sử dụng không phải là một cấp độ của
RAID.

Đánh giá post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *