GIỚI THIỆU CHUNG
Tổng quan về Cloud computing
Cloud computing kết hợp nhiều khái niệm như Web service, Web 2.0 và các xu hướng công nghệ hiện đại, dựa trên nền tảng Internet để phục vụ nhu cầu người dùng Chẳng hạn, dịch vụ Google Application Engine và Amazon EC2 cung cấp ứng dụng cho mua bán trực tuyến, cho phép truy cập qua trình duyệt web, trong khi phần mềm và dữ liệu được lưu trữ trên các server hoặc datacenter.
Cloud computing là mô hình cung cấp tài nguyên hệ thống máy tính như mạng, máy chủ, lưu trữ, ứng dụng và dịch vụ, cho phép người dùng truy cập và sử dụng mà không cần quản lý trực tiếp Nó cho phép nhiều người dùng cùng sử dụng tài nguyên từ các trung tâm dữ liệu qua Internet, với các tính năng thường được phân tán tại nhiều vị trí trong các cụm máy chủ.
Hình 1-1 Mô hình Cloud Computing
Cloud computing mang lại hiệu quả kinh tế nhờ vào việc chia sẻ tài nguyên, giúp doanh nghiệp giảm chi phí cơ sở hạ tầng Sự phát triển của mạng công nghệ tốc độ cao, giá thành máy tính và thiết bị lưu trữ giảm, cùng với ảo hóa phần cứng và kiến trúc hướng dịch vụ, đã thúc đẩy sự hình thành của cloud computing Theo NIST, cloud computing có năm đặc tính cơ bản: On-demand self-service cho phép khách hàng tự quản lý dịch vụ; Broad network access đảm bảo dịch vụ có thể truy cập qua mạng thông thường; Resource pooling cho phép chia sẻ hạ tầng trong datacenter giữa nhiều người dùng; Rapid elasticity cho phép dịch vụ thay đổi linh hoạt theo nhu cầu; và Measured service giúp tối ưu hóa tài nguyên sử dụng và cập nhật thường xuyên.
Ba mô hình dịch vụ được NIST trình bày dùng để định nghĩa các dịch vụ cung cấp trong Cloud computing bao gồm: Software as a Service (SaaS), Platform as a
Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) are essential components of cloud computing In the Software as a Service (SaaS) model, applications are hosted on data centers and managed by service providers A prime example of the SaaS model is Microsoft Office 365, which illustrates the convenience and efficiency of accessing software through the cloud.
Platform as a Service (PaaS) operates on servers located in data centers managed by service providers, allowing users to manage their applications and data storage on these servers Notable examples of PaaS include Windows Azure and Amazon Web Services (AWS).
Ngoài ra, NIST cũng liệt kê bốn mô hình triển khai cho Cloud computing bao gồm: Private Cloud, Public Cloud, Community Cloud và Hybrid Cloud Mô hình
Private Cloud là mô hình hạ tầng chỉ dành cho một khách hàng duy nhất, có thể được triển khai tại datacenter của người dùng hoặc nhà cung cấp dịch vụ, và người dùng chịu toàn bộ chi phí Trong khi đó, Public Cloud là mô hình hạ tầng mở cho tất cả mọi người, bao gồm cả cá nhân và doanh nghiệp lớn, với các ví dụ điển hình như Microsoft Office 365, Microsoft Azure, Amazon Web Service (AWS) và NTC Cloud Server Mô hình Community Cloud cho phép chia sẻ hạ tầng giữa nhiều tổ chức hoặc người dùng có mục đích chung, với quản lý có thể thuộc về tổ chức hoặc bên thứ ba Cuối cùng, Hybrid Cloud kết hợp ba mô hình trên, như trong Microsoft Office 365, nơi mailbox có thể được lưu trữ tại datacenter của Microsoft hoặc kết hợp với Exchange Server, tạo nên một hệ thống lai hiệu quả.
Trong phạm vi triển khai của luận văn, mô hình Private Cloud được sử dụng để triển khai cài đặt.
Tổng quan về Private Cloud
Private Cloud là dịch vụ cung cấp qua Internet hoặc mạng nội bộ, giới hạn người dùng và không cho phép truy cập công khai, còn được gọi là Internal Cloud hoặc Corporate Cloud Nó mang lại cho doanh nghiệp những lợi ích như tự phục vụ, khả năng mở rộng và tính linh hoạt tương tự như Public Cloud Bên cạnh đó, Private Cloud cung cấp tính riêng tư và bảo mật cao nhờ vào firewall và hosting nội bộ, đảm bảo rằng các hoạt động và dữ liệu quan trọng không bị truy cập bởi bên thứ ba.
Hai mô hình dịch vụ được áp dụng trong Private Cloud bao gồm: Platform as a
Mô hình Platform as a Service (PaaS) cho phép tổ chức cung cấp ứng dụng miễn phí và trả phí, trong khi Infrastructure as a Service (IaaS) cho phép sử dụng tài nguyên cơ sở hạ tầng như máy tính, hệ thống mạng và thiết bị lưu trữ như một dịch vụ.
Cloud riêng kết hợp với Cloud công cộng tạo thành Cloud lai, giúp doanh nghiệp tận dụng Cloud Bursting để tối ưu hóa không gian và quy mô dịch vụ Cloud Computing khi nhu cầu sử dụng của người dùng hoặc tổ chức tăng cao.
Openstack, Cloudstack là một trong những nền tảng phần mềm điển hình cho mô hình Private Cloud.
Tổng quan về Virtualization
Ảo hóa là quá trình triển khai một hệ thống máy tính ảo trên nền tảng máy tính thật, cho phép giả lập các thiết bị như phần cứng, lưu trữ và mạng Kỹ thuật này cho phép người dùng chia sẻ một instance vật lý của tài nguyên hoặc ứng dụng giữa nhiều người và tổ chức khác nhau.
Hình 1-2 Sự khác biệt về kiến trúc máy tính giữa công nghệ truyền thống với công nghệ ảo hóa
Với sự phát triển của công nghệ như Utility Computing và Cloud Computing, công nghệ ảo hóa ngày càng được chú trọng trong việc phát triển các công nghệ mới Ảo hóa được phân thành nhiều loại khác nhau, mỗi loại đều có ứng dụng và lợi ích riêng.
Bảng 1-1 Các loại ảo hóa
STT Loại ảo hóa Công nghệ ảo hóa Mức độ quan tâm
1 Phần cứng (Hardware) Server Virtualization Cao
Application virtualization Trung bình Workspace virtualization Trung bình Service virtualization Cao
3 Bộ nhớ (Memory) Memory virtualization Cao
Storage virtualization Cao Distributed file system Trung bình Virtual file system Trung bình
5 Dữ liệu (Data) Data virtualization Cao
Virtual private network Trung bìnhNền tảng hypervisor được giới thiệu sau đây cũng sử dụng công nghệ ảo hóa.
Tổng quan về Hypervisor
Theo Redhat, hypervisor là phần mềm trừu tượng hóa phần cứng, cho phép nhiều hệ điều hành hoạt động đồng thời trên cùng một nền tảng phần cứng Hypervisor hoạt động trên hệ thống, tạo điều kiện cho các máy ảo chạy trên nền tảng phần cứng của máy chủ.
Theo VMWare, hypervisor là phần mềm cho phép phân vùng ảo hóa trực tiếp trên phần cứng, tối ưu hóa khả năng ảo hóa các dịch vụ mạng.
Hypervisor là phần mềm, firmware hoặc phần cứng dùng để tạo và quản lý máy ảo Một máy tính chạy hypervisor có thể vận hành một hoặc nhiều máy ảo cùng lúc.
Host và mỗi máy ảo được gọi là máy Guest [1]
Hypervisor là một nền tảng ảo hóa cho phép quản lý và vận hành các hệ điều hành khách (Guest OS), cho phép các instance như Linux, Windows và macOS chia sẻ tài nguyên phần cứng ảo trên cùng một máy tính x86 Cơ chế hoạt động của Hypervisor khác biệt so với ảo hóa hệ điều hành, trong đó tất cả các instance (container) phải chia sẻ chung một nhân (kernel) thông qua Guest OS để phân chia không gian sử dụng.
Hình 1-3 Hai cơ chế ảo hóa phần cứng
Sự phát triển của công nghệ ảo hóa đã thúc đẩy sự thay đổi trong các nền tảng phần cứng, với Intel và AMD thiết kế các vi xử lý mới dựa trên kiến trúc x86, bao gồm công nghệ Intel VT-x và AMD-V Chipset Intel 80286 đã giới thiệu hai phương thức địa chỉ bộ nhớ: địa chỉ bộ nhớ thực (real mode) và địa chỉ bộ nhớ ảo (protected mode), trong đó địa chỉ bộ nhớ ảo cung cấp tính năng hỗ trợ multicasting thông qua phần cứng hỗ trợ bộ nhớ ảo và vi xử lý.
Dựa trên nền tảng đó, Hypervisor được phân thành 2 loại như sau: Native hypervisor (Bare-metal hypervisor), Hosted hypervisor.
Hình 1-4 Phân loại hypervisor a Native hypervisor (Bare-metal hypervisor)
Hypervisor chạy trực tiếp trên phần cứng server và quản lý các Guest OS Các hypervisor được IBM phát triển vào những năm 1960, bao gồm phần mềm test
SIMON, hệ điều hành CP/CMS hay Hệ điều hành Antsle, Xen, XCP-ng, SPARC
Oracle VM Server, Oracle VM Server x86, Microsoft Hyper-V, Xbox One vàVMware ESXi (phiên bản trước đó là VMware ESX) [1] b Hosted hypervisor
Hypervisor hoạt động thông qua một chương trình máy tính hoặc hệ điều hành nền, cho phép mỗi hệ điều hành khách (Guest OS) hoạt động như một vi xử lý của máy chủ (host) Hypervisor tổng quát hóa các hệ điều hành khách, tạo ra môi trường ảo hóa hiệu quả.
OS từ Host OS, bao gồm VMware Workstation, VMware Player, VirtualBox, Parallels Desktop for Mac và QEMU [1]
Tuy nhiên sự khác biệt của 2 loại hypervisor không phải lúc nào cũng rõ ràng.
Kernel-based Virtual Machine (KVM) của Linux và Bhyve của FreeBSD là những module nhân hoạt động như hypervisor gốc, cho phép thao tác trực tiếp trên máy chủ Cả hai đều sử dụng nền tảng chung của hệ điều hành và cạnh tranh trong việc cung cấp ứng dụng cho tài nguyên máy ảo, do đó KVM và Bhyve có thể được coi là hypervisor được lưu trữ.
GIỚI THIỆU VỀ LIBVIRT- KVM, OPENSTACK, CLOUDSTACK
KVM
Kernel-based Virtual Machine (KVM) là module ảo hóa tích hợp trong nhân Linux, hoạt động như một hypervisor Được ra mắt vào tháng 10 năm 2006 và chính thức có mặt trong nhân Linux từ phiên bản 2.6.20 vào ngày 5 tháng 2 năm 2007, KVM yêu cầu vi xử lý hỗ trợ phần cứng ảo hóa mở rộng như Intel VT hoặc AMD-V Ban đầu thiết kế cho bộ xử lý x86, KVM sau đó đã được mở rộng sang các kiến trúc khác như S/390, PowerPC, IA-64 và ARM.
KVM cung cấp tính năng ảo hóa phần cứng cho nhiều hệ điều hành khách khác nhau, bao gồm Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS Research Operating System, MacOS, Android 2.2, GNU/Hurd (Debian K16), Minix 3.1.2a, Solaris 10 U3 và Darwin 8.0.1, cũng như các hệ điều hành khác và thế hệ hệ điều hành mới.
KVM biến nhân Linux thành một hypervisor, kết hợp với QEMU - phần mềm mô phỏng phần cứng, nhằm tối ưu hóa các thành phần hệ thống QEMU có khả năng mô phỏng vi xử lý và các thiết bị ngoại vi như ổ đĩa, hệ thống mạng, VGA, PCI, USB, cùng với các cổng nối tiếp và song song, giúp thiết lập hệ thống phần cứng ảo hoàn chỉnh để cài đặt và mô phỏng các hệ điều hành khách.
KVM là một hypervisor chính của Openstack compute (Nova) trongOpenstack [6]
LIBVIRT
Libvirt là một API mã nguồn mở và công cụ quản trị cho nền tảng ảo hóa, cho phép quản lý các công nghệ ảo hóa như KVM, Xen, VMware ESXi và QEMU Với kiến trúc lớp của các hypervisor, Libvirt trở thành một phần quan trọng trong việc phát triển các giải pháp dựa trên đám mây.
Libvirt là một thư viện ngôn ngữ C, hỗ trợ nhiều ngôn ngữ lập trình khác như Python, Perl, OCaml, Ruby, Java, JavaScript (đặc biệt là Node.js) và PHP, đóng vai trò quan trọng trong việc quản lý và tương tác với Hypervisor.
Libvirt cung cấp hỗ trợ cho lập trình viên thông qua các class/package được gọi là libvirtmod, cho phép sử dụng nhiều ngôn ngữ lập trình khác nhau Việc triển khai libvirtmod được kết nối chặt chẽ với các nền tảng ngôn ngữ lập trình C/C++, bao gồm cả cú pháp và cấu trúc hàm.
Dòng lệnh giao diện của libvirt được thực hiện thông qua câu lệnh virsh, và libvirt cũng được tích hợp vào các công cụ quản trị như oVirt và virt-manager.
Trong Openstack, libvirt giúp KVM hoạt động một cách tối ưu và hiệu quả [6]
CLOUDSTACK
Cloudstack (hay còn gọi là Apache Cloudstack) là một nền tảng phần mềm mã nguồn mở Cloud Computing, được phát triển theo mô hình Infrastructure as a Service
(IaaS) dùng để quản lý tài nguyên hệ thống máy tính [1]
CloudStack utilizes various hypervisors, including KVM, VMware vSphere, VMware ESXi, VMware vCenter, XenServer/XCP, Oracle VM Server, and Microsoft Hyper-V, to meet virtualization needs Additionally, CloudStack offers APIs compatible with Amazon Web Services (AWS) and supports the Open Cloud Computing interface established by the Open Grid Forum (OGF).
Cloudstack là được pháp triển bởi tổ chức Apache Software Foundation dựa theo các điều khoản của Giấy phép Apache [1]
CloudStack, initially developed by Cloud.com and released in May 2010, was acquired by Citrix Systems on July 12, 2011 Following the acquisition, Citrix partnered with the Apache Software Foundation in August 2011 to further develop CloudStack under the Apache License In February 2012, Citrix released CloudStack 3.0, marking a significant milestone in its evolution.
Người dùng có thể dễ dàng quản lý Cloudstack thông qua giao diện web, công cụ dòng lệnh, hoặc API RESTful Bên cạnh đó, Cloudstack còn cung cấp API tương thích với AWS EC2 và AWS S3, giúp các tổ chức phát triển Hybrid Cloud hiệu quả.
Cloudstack tổ chức phần cứng theo cấu trúc phần tầng, bắt đầu từ tầng thấp nhất với các hypervisor, được xem như là một Host và hệ thống lưu trữ ảo chung, kết nối thành Cluster Tầng thứ hai bao gồm các Cluster kết nối qua switch layer 2, hình thành nên Pod Tầng cao nhất, gồm các Pod, kết nối với nhau thông qua switch layer 3 và liên kết đến khối thiết bị trên server.
OPENSTACK
OpenStack là nền tảng phần mềm mã nguồn mở cho Cloud Computing, phát triển theo mô hình Infrastructure as a Service (IaaS), giúp quản lý tài nguyên hệ thống máy tính và cung cấp server ảo cùng các tài nguyên khác cho người dùng Nền tảng này bao gồm các chức năng liên quan, điều khiển việc xử lý nhóm phần cứng, lưu trữ và hệ thống mạng trong trung tâm dữ liệu Người sử dụng có thể quản lý thông qua dashboard web, công cụ dòng lệnh hoặc API RESTful.
Openstack.org là đơn vị phát hành Openstack dựa theo các điều khoản của Giấy phép Apache [1]
OpenStack là một dự án chung của Rackspace Hosting và của NASA vào năm
Kể từ năm 2016, OpenStack đã được quản lý bởi OpenStack Foundation, một tổ chức phi lợi nhuận được thành lập vào tháng 9 năm 2012 nhằm quảng bá phần mềm OpenStack và xây dựng cộng đồng người dùng Hơn 500 công ty đã tham gia vào dự án này, đánh dấu sự phát triển mạnh mẽ của OpenStack trong lĩnh vực công nghệ đám mây.
Bảng 2-1 Lịch sử hình thành và phát triển của Openstack
Năm Thời gian cụ thể Sự kiện Mục tiêu
Bộ mã nguồn đầu tiên được phát triển từ nền tảng Nebula của NASA và nền tảng Cloud Files của Rackspace, được thiết kế bởi quản trị viên website NASA Ames, Megan A Eskey Đây là một kiến trúc nguồn mở mang tên OpenNASA v2.0.
Các module Cloudstack và Openstack được kết hợp và phát hành dưới dạng nguồn mở bởi nhóm NASA Nebula phối hợp với Rackspace.
Rackspace Hosting và NASA đã cùng nhau đưa ra một sáng kiến phần mềm Cloud nguồn mở được gọi là OpenStack.
Nhiệm vụ của OpenStack là
"nền tảng Cloud Computing nguồn mở phổ biến, đáp ứng nhu cầu của public cloud và private cloud bất kể quy mô,
Năm Thời gian cụ thể Sự kiện Mục tiêu bằng cách đơn giản để thực hiện và có thể mở rộng quy mô".
SUSE đã công bố bản thương mại hóa đầu tiên dành cho các thiết bị hỗ trợ OpenStack, được cấu hình đầy đủ dựa trên phiên bản OpenStack Diablo Bản phát hành chính thức này được ra mắt vào ngày 21/10.
Dự án OpenStack được thiết kế để hỗ trợ các tổ chức cung cấp dịch vụ Cloud Computing trên nền tảng phần cứng tiêu chuẩn Dự án cam kết thực hiện việc cập nhật phần mềm định kỳ sau mỗi vài tháng, nhằm đảm bảo hiệu suất và tính năng tối ưu cho người dùng.
Các nhà phát triển bản Ubuntu- Linux đã sử dụng OpenStack với phiên bản không được hỗ trợ của Openstack Bexar được phát hành cho Ubuntu 11.04 (Natty Narwhal).
Canonical đã giới thiệu hỗ trợ toàn diện cho OpenStack Cloud ngay sau khi tổ chức tài trợ Ubuntu được thành lập, bắt đầu với phiên bản Cactus của OpenStack.
OpenStack đã có mặt trong Debian Sid kể từ phiên bản OpenStack Cactus Phiên bản đầu tiên của Debian tích hợp OpenStack là Debian 7.0 (Debian Wheezy) với OpenStack 2012.1 (OpenStack Essex).
NASA đã quyết định rút khỏi OpenStack và ngừng vai trò là thành viên đóng góp tích cực Thay vào đó, cơ quan này đã chọn sử dụng dịch vụ Amazon Web Services cho các giải pháp điện toán đám mây của mình.
Redhat ra mắt bản OpenStack phân tán của họ cũng bắt đầu với phiên bản Openstack Essex.
HP bắt đầu triển khai HP HelionPublic Cloud trên OpenStack
Năm Thời gian cụ thể Sự kiện Mục tiêu
SUSE đã ra mắt bản OpenStack phân tán dành cho doanh nghiệp được hỗ trợ thương mại dựa trên bản phát hành Openstack Essex.
Dịch vụ kỹ thuật số của Chính phủ Vương quốc Anh (Government Digital Service - GDS) đã phát triển dựa trên phiên bản OpenNASA v2.0 là phiên bản Government as a Platform
NASA đã thực hiện một cuộc kiểm toán nội bộ do thiếu tiến bộ kỹ thuật và các yếu tố khác, dẫn đến việc cơ quan này từ bỏ vai trò là nhà phát triển tích cực của dự án Thay vào đó, NASA quyết định tập trung vào việc sử dụng các nguồn lực công cộng.
Oracle đã chính thức tham gia OpenStack với vai trò là Nhà phát triển, đồng thời có kế hoạch tích hợp OpenStack vào các sản phẩm của mình, bao gồm Oracle Solaris và Oracle Linux.
At the Interop and Tech Day, Avaya showcased software-defined networking (SDN) through the implementation of shortest-path bridging and OpenStack, demonstrating an automated and scalable model that extends from data centers to devices, thereby eliminating manual provisioning tasks.
Vào ngày 24/9, Oracle cũng phát hành các phiên bản OracleOpenStack là sự kết hợp OracleSolaris và Oracle Linux tạo raOpenstack Icehouse
Năm Thời gian cụ thể Sự kiện Mục tiêu
Tính đến thòi điểm này, NASA vẫn sử dụng OpenStack Private Cloud và có RFPs để hỗ trợ OpenStack Public Cloud.
2016 OpenStack Foundation là tổ chức quản lý OpenStack. b Các phiên bản của Openstack
Bảng 2-2 Các phiên bản của Openstack
Openstack Tình trạng Thời gian phát hành Giai đoạn tiếp theo Ngày chấm dứt
15 Ocata Hỗ trợ 22/02/2017 Ước tính khôngxác định
16 Pike Hỗ trợ 30/08/2017 Ước tính khôngxác định
17 Queens Duy trì 28/02/2018 Hỗ trợ đến25/10/2019
18 Rocky Duy trì 30/08/2018 Hỗ trợ đến24/02/2020
Kiến trúc các module của Openstack ứng với các tên gọi của từng dịch vụ được cung cấp: [5]
Bảng 2-3 Các dịch vụ của Openstack
STT Tên dịch vụ Phân loại dịch vụ
8 Application Catalog (Murano) Mở rộng
9 Backup, Restore and Disaster Recovery
10 Bare Metal (Ironic) Mở rộng
14 Data Processing (Sahara) Mở rộng
15 Data Protection Orchestration (Karbor) Mở rộng
18 EC2 API compatibility Mở rộng
20 Infrastructure Optimization (Watcher) Mở rộng
21 Key Manager (Barbican) Mở rộng
22 Load-balancer (Octavia) Mở rộng
25 NFV Orchestration (Tacker) Mở rộng
28 RCA (Root Cause Analysis) (Vitrage) Mở rộng
29 Resource reservation (Blazar) Mở rộng
31 Shared File Systems (Manila) Mở rộng
STT Tên dịch vụ Phân loại dịch vụ
33 Telemetry Alarming (Aodh) Mở rộng
34 Telemetry Data Collection (Ceilometer) Mở rộng
35 Telemetry Event (Panko) Mở rộng
3 Các module chính được cung cấp trong Openstack: a Openstack identity module
OpenStack Identity (Keystone) cung cấp danh mục người dùng được ánh xạ tới các dịch vụ OpenStack, cho phép truy cập dễ dàng Hệ thống này hoạt động như một giải pháp xác thực chung và có thể tích hợp với các dịch vụ phụ trợ như LDAP và PAM OpenStack Identity hỗ trợ nhiều phương thức xác thực, bao gồm thông tin đăng nhập tiêu chuẩn, hệ thống token, và phương thức truy cập AWS Thêm vào đó, nó cung cấp danh sách có thể truy vấn các dịch vụ đã triển khai trên OpenStack, giúp người dùng và công cụ bên thứ ba xác lập quyền truy cập vào tài nguyên.
OpenStack Compute (Nova) là một module điều khiển Cloud computing, là phần chính của hệ thống Openstack được phát triển theo mô hình dịch vụ
Hạ tầng như một Dịch vụ (IaaS) với OpenStack Compute được thiết kế để quản lý và tối ưu hóa tự động các tài nguyên máy tính Nó hỗ trợ mở rộng các công nghệ ảo hóa hiện có, bao gồm cấu hình của máy chủ bare-metal và siêu máy tính Các lựa chọn ảo hóa như KVM, VMware và Xen sử dụng công nghệ hypervisor, bên cạnh công nghệ Hyper-V và container Linux cũng được tích hợp.
OpenStack Compute phân tán các tác vụ hoạt động độc lập và riêng biệt như sau:
Bảng 2-4 Các API trong Openstack Compute (Nova)
1 nova-api Tương tác giữa các API của hệ thống với người dùng
2 nova-compute Cho phép người dùng có thể tạo và thực thi các VM instance với các API hypervisor (Libvirt KVM, Vmware API của Vmware)
3 nova-network Cho phép người dùng quản lý các tác vụ liên quan đế mạng
4 nova- scheduler Cho phép tối ưu các hoạt động của VM instance
5 nova- conductor Cho phép người dùng truy nhập vào các node thông qua database c Openstack network module
OpenStack Networking (Neutron) quản lý mạng và địa chỉ IP, đảm bảo rằng mạng không bị tắc nghẽn hoặc thắt cổ chai trong quá trình triển khai Cloud Nó cung cấp cho người dùng khả năng cấu hình mạng nội bộ và cấu hình qua Internet một cách linh hoạt.
OpenStack Networking cung cấp các mô hình mạng linh hoạt cho ứng dụng và nhóm người dùng, bao gồm các mạng phẳng (flat network) và VLAN, nhằm phân tách các máy chủ và quản lý lưu lượng truyền dẫn hiệu quả.
OpenStack Networking quản lý địa chỉ IP, hỗ trợ cả địa chỉ IP tĩnh hoặc địa chỉ
TRIỂN KHAI CÀI ĐẶT HỆ THỐNG PRIVATE CLOUD CHO CÁC ỨNG DỤNG ĐÀO TẠO VÀ THỰC HÀNH DỰA TRÊN GIẢI PHÁP MÃ NGUỒN MỞ OPENSTACK
Hệ thống phần cứng hiện có
Hệ thống phần cứng triển khai OpenStack bao gồm ba server cài đặt CentOS 7, được cấu hình để kết nối và remote qua SSH Mỗi server mở cổng để kết nối Internet, giúp quản trị viên quản lý hệ thống từ xa, ngay cả khi không có mặt tại chỗ Để triển khai giải pháp Private Cloud, các server này là thành phần chính của hệ thống.
Bảng các server, và số lượng:
STT Tên server Số lượng
Bảng cấu hình server (số CPU, RAM, Storage và Card mạng )
STT Tên server CPU Core RAM(GB) Storage
II Bài toán quy hoạch máy chủ
1 Mô hình triển khai tham chiếu
Theo yêu cầu của giải pháp Openstack, mô hình Private Cloud cần bao gồm một Controller node, nhiều Compute node, và có thể thêm Storage node hoặc các thành phần phụ trợ khác Controller node quản lý và điều phối hoạt động của các Compute node cũng như các thành phần khác để thực hiện các tác vụ quản lý máy ảo như tạo, hủy và cấu hình máy ảo, đồng thời quản lý mạng ảo Các Compute node là nơi thực hiện việc tạo và lưu trữ các máy ảo, cung cấp tài nguyên cho chúng hoạt động Bên cạnh đó, Storage node có nhiệm vụ cấp phát tài nguyên lưu trữ cho các máy ảo và file chia sẻ.
Hình 3-1: Mô hình triển khai tham chiếu của Openstack
Các dịch vụ chính được cài đặt trong Controller node gồm:
Bảng 3-1: Các dịch vụ cài đặt trong Controller node
STT Các module Chức năng
1 Keystone Là dịch vụ dùng để quản lý việc xác thực người dùng khi truy cập và sử dụng các dịch vụ của Openstack
2 Glance Là dịch vụ dùng để quản lý image liên quan đến ổ đĩa ảo và cấu hình cài đặt trên các ổ đĩa ảo khi sử dụng Openstack
3 Dashboard Là dịch vụ dùng để hỗ trợ người dùng quản lý hệ thống Openstack thông qua giao diện đồ họa
4 Nova (nova-api, nova-scheduler, nova-conductor)
Là dịch vụ dùng để quản lý việc truy xuất cơ sở dữ liệu và phục vụ các tác vụ liên quan tới máy ảo
5 Neutron (neutron- server, neutron- agent)
Dịch vụ này quản lý kết nối mạng giữa Controller node và các node khác trong OpenStack Các dịch vụ chính được cài đặt trong Compute node bao gồm nhiều thành phần quan trọng để đảm bảo hiệu suất và khả năng mở rộng của hệ thống.
Bảng 3-2: Các dịch vụ trong Compute node
STT Các module Chức năng
Là dịch vụ dùng để quản lý các máy ảo cũng như cập nhật trạng thái của các máy ảo trong hệ thống Openstack
2 Neutron (neutron- agent) Là dịch vụ dùng để quản lý kết nối mạng giữa
Compute node với các node khác trong Openstack Các dịch vụ chính được cài đặt trong Storge node gồm:
Bảng 3-3: Các dịch vụ trong Storage node
STT Các module Chức năng
Cinder là dịch vụ quản lý thiết bị lưu trữ khối, cung cấp API tự phục vụ cho người dùng dựa trên nhu cầu và yêu cầu sử dụng của họ.
Khi triển khai hệ thống OpenStack, Storage node có thể được cài đặt chung với Compute node Controller node cung cấp các dịch vụ như SQL Database để lưu trữ thông tin hệ thống, RabbitMQ cho việc trao đổi thông tin với Compute node, và NTP để đồng bộ thời gian giữa các máy ảo và máy host Bên cạnh đó, Compute node cũng cung cấp dịch vụ tường lửa nhằm đảm bảo an toàn cho các máy ảo.
2 Bài toán quy hoạch máy chủ
Dựa trên mô hình triển khai tham chiếu và thông tin về các server trong CHƯƠNG 3, việc bố trí cài đặt các thành phần chức năng như controller node và compute node vào server là rất quan trọng, ảnh hưởng trực tiếp đến năng lực xử lý và hiệu suất sử dụng tài nguyên của hệ thống Để minh họa tác động của việc bố trí này, chúng ta sẽ xem xét các mô hình triển khai thông thường.
Trong mô hình PhyComp-PhyCon (Tính toán vật lý và điều khiển vật lý), các nút chức năng được triển khai trên các máy vật lý tách biệt Mỗi máy vật lý chỉ thực hiện một chức năng duy nhất, giúp tối ưu hóa hiệu suất Với ba máy vật lý hiện có, một máy sẽ được triển khai để thực hiện chức năng cụ thể.
Node điều khiển (Controller node) và các node tính toán (Compute node) được cài đặt trên các máy riêng biệt, giúp đảm bảo tài nguyên quản lý của hệ thống Cloud không bị xung đột với tài nguyên cung cấp cho các máy ảo Mô hình này đơn giản và dễ cài đặt, chỉ cần tuân thủ hướng dẫn từ tài liệu tham khảo OpenStack Việc tách biệt này góp phần làm cho hệ thống hoạt động ổn định và hiệu quả hơn.
Triển khai theo mô hình PhyComp-PhyCon có thể dẫn đến lãng phí tài nguyên phần cứng, vì Controller node được cài đặt trên server với cấu hình 64 core và 128GB RAM, nhưng thực tế chỉ cần 1-2 core và 2-4GB RAM để vận hành Thêm vào đó, server tương tự cũng sẽ cài đặt một Compute node, chiếm 2-4 core và 4-8GB RAM, gây ra sự không hiệu quả trong việc sử dụng tài nguyên.
Trong bài viết này, chúng tôi đề cập đến việc triển khai 60 máy ảo, mỗi máy ảo sử dụng 1 core và 2GB RAM Để cài đặt Controller node trên một server tách biệt, cần tối thiểu 10GB dung lượng lưu trữ dữ liệu Với cấu hình server hiện tại có dung lượng ổ cứng lên đến 20TB, việc này hoàn toàn khả thi.
Mô hình PhyComp-CoPhyCon (Physical Compute and Colocatable Physical Controller) triển khai các nút chức năng trên cùng một máy vật lý, trong đó chỉ có một máy được cài đặt đầy đủ các chức năng Trong ba máy vật lý, một máy sẽ đồng thời cài đặt Controller node và Compute node, trong khi hai máy còn lại chỉ cài đặt Compute node Mô hình này dễ tiếp cận cho giai đoạn thử nghiệm đầu tiên, vì việc cài đặt trên một máy không yêu cầu nhiều tài nguyên Việc kết hợp các chức năng trên cùng một máy vật lý giúp hệ thống tối ưu hóa tài nguyên xử lý (CPU, RAM, Core) và lưu trữ, từ đó giảm thiểu lãng phí và sử dụng tối đa khả năng của hệ thống.
Mô hình PhyComp-CoPhyCon gặp khó khăn trong việc cấu hình do việc thiết lập Controller node và Compute node trên cùng một máy vật lý có thể gây ra xung đột Việc chia sẻ tài nguyên giữa hệ thống Cloud (được quản lý bởi Controller node) và các máy ảo (được quản lý bởi Compute node) có thể ảnh hưởng đến hiệu suất hoạt động Khi tài nguyên được ưu tiên cấp phát cho Controller node, các máy ảo trong Compute node sẽ bị thiếu hụt tài nguyên CPU và RAM, dẫn đến hiệu suất giảm sút hoặc thậm chí treo hệ thống Ngược lại, khi có nhiều máy ảo cần hoạt động, tài nguyên như RAM và CPU sẽ được ưu tiên cho chúng, làm giảm tài nguyên dành cho Controller node và ảnh hưởng tiêu cực đến toàn bộ hệ thống.
Mô hình PhyComp-VirCon được đề xuất nhằm tối ưu hóa việc sử dụng tài nguyên phần cứng của các máy chủ vật lý, đồng thời tách biệt tài nguyên cho quản lý hệ thống Cloud (Controller node) và tài nguyên cho các máy ảo người dùng (Compute node) Việc bố trí các thành phần chức năng vào server và phương thức triển khai là yếu tố quan trọng, góp phần giải quyết thách thức trong quy hoạch máy chủ để hệ thống hoạt động hiệu quả về khả năng xử lý và hiệu suất sử dụng.
Controller node được triển khai trên một máy ảo riêng biệt, hoạt động trên một máy vật lý có cài đặt Compute node Mô hình PhyComp-VirCon được trình bày như sau.
Mô hình PhyComp-VirCon (Physical Compute and Virtual Controller) sử dụng một máy ảo đặc biệt để tách biệt tài nguyên với ba máy vật lý còn lại, trong đó Compute node được cài đặt trên ba máy vật lý và Controller node trên máy ảo Việc này giúp các nút chức năng hoạt động độc lập, dễ dàng cài đặt theo hướng dẫn của Openstack, đảm bảo tài nguyên quản lý từ Controller node và tài nguyên cung cấp cho các máy ảo người dùng từ Compute node hoàn toàn tách biệt, không xung đột Sự khác biệt chính giữa mô hình PhyComp-PhyCon và PhyComp-VirCon là Controller Node được cài đặt trên server ảo, cho phép cấu hình tài nguyên máy ảo đơn giản và nhanh chóng, đồng thời dễ dàng mở rộng khi cần thiết Quản trị viên sẽ cài đặt máy ảo KVM trên CentOS7 với cấu hình tối thiểu 2 core và 4GB RAM, sử dụng libvirt để điều khiển máy ảo, và có thể điều chỉnh cấu hình khi cần tăng cường tài nguyên.
Sử dụng Openstack trong quản trị hệ thống Private Cloud cho trường đại học
Hệ thống OpenStack được quản lý theo cấu trúc domain, trong đó mỗi domain được điều hành bởi tài khoản admin trong domain Default Mỗi domain cũng có tài khoản quản trị riêng, độc lập với các domain khác Tài khoản quản trị có quyền tạo nhiều project và người dùng với các quyền hạn khác nhau (như admin, user, …) để tương tác hiệu quả với hệ thống Cloud.
Hệ thống Private Cloud được triển khai kết hợp với phần cứng hiện có nhằm cung cấp tài nguyên cho các đơn vị trong trường học, phục vụ cho việc sử dụng các ứng dụng đào tạo và thực hành Do đó, mô hình quản trị cần phải phản ánh đúng vai trò phân cấp chức năng tương ứng với cơ cấu quản lý đào tạo giáo dục của nhà trường.
Mỗi domain trong hệ thống được thiết lập tương ứng với một cloud, phục vụ cho các đơn vị trong trường như khối hành chính và các khoa, viện, bộ môn Các domain này cung cấp dịch vụ hỗ trợ cho công tác nghiệp vụ, quản lý và giảng dạy, giúp nâng cao hiệu quả học tập Mỗi domain hoạt động độc lập và được quản lý thông qua một tài khoản quản trị riêng biệt.
Mỗi dự án được triển khai tương ứng với một cụm máy chủ, phục vụ cho các phòng ban trong khối hành chính như phòng Đào tạo, phòng Kế toán, cũng như các dự án của khoa.
Mỗi viện quản lý các môn học theo từng bộ môn riêng biệt Mỗi dự án được điều hành nhằm phục vụ việc triển khai các hệ thống đặc thù cho từng đơn vị Các miền hoạt động độc lập và được sử dụng bởi một hoặc nhiều người dùng với các quyền truy cập khác nhau.
Việc tạo role và user trong hệ thống Openstack giúp phân cấp người dùng hiệu quả, cho phép giảng viên thiết lập môi trường thực nghiệm cho sinh viên mà không cần cấu hình lại hệ thống Quản trị viên phải thực hiện các bước khởi tạo theo thứ tự domain, project, role và user Sau khi cài đặt Openstack, quản trị viên đăng nhập với tài khoản đã cấu hình và có thể tạo thêm domain mới thông qua giao diện dòng lệnh hoặc Dashboard Mỗi domain có thể quản lý nhiều project, và để tạo project, quản trị viên cần nhập thông tin về tên và mô tả Quản trị viên cũng có thể thay đổi hoặc xóa project, đồng thời tạo và quản lý nhiều user với các role khác nhau Khi tạo user, quản trị viên cần xác định project và role tương ứng Người dùng sau khi được tạo sẽ đăng nhập vào Openstack và có thể được quản lý bởi quản trị viên, bao gồm việc thay đổi role hoặc vô hiệu hóa tài khoản mà không cần xóa.
OpenStack không chỉ hỗ trợ quản trị theo mô hình phân cấp chức năng mà còn cung cấp cơ chế quản trị hướng người dùng Người dùng có khả năng quy hoạch, tạo và thay đổi hệ thống các cụm server mà mình quản lý Điều này bao gồm việc thiết lập mạng kết nối cho từng máy ảo, quản lý việc mở và đóng port, thiết lập các luật bảo mật kết nối, cũng như cấu hình hệ thống máy ảo với các lựa chọn về hệ điều hành và vị trí máy ảo trong hệ thống.
Mỗi tài khoản người dùng có khả năng tạo nhiều máy ảo và khi được cấp quyền, họ có thể thao tác với các máy ảo trong các dự án khác nhau Để cài đặt máy ảo, quản trị viên cần khởi tạo source image, tức là các bản cài đặt hệ điều hành, thông qua menu Project Compute Image và chọn Create Image để nhập thông tin và tải file image với định dạng QCOW2 Quản trị viên cũng cần tạo các flavor để cấu hình tài nguyên cho máy ảo bằng cách vào menu Admin Compute Flavors, chọn Create Flavor và nhập thông tin về tên flavor, CPU, RAM và dung lượng lưu trữ Trong quá trình cài đặt, việc thiết lập kết nối mạng cho máy ảo là rất quan trọng, và Openstack hỗ trợ quy hoạch hệ thống mạng qua giao diện đồ họa tại Project Network Network Topology Để khởi tạo kết nối mạng, quản trị viên vào menu Project Network Networks để thiết lập tên mạng và cấu hình dải mạng (subnet) Cuối cùng, để kết nối các dải mạng với nhau hoặc tạo kết nối Internet, quản trị viên cần tạo và cấu hình router qua menu Project Network Routers.
Router được cấu hình để kết nối với mạng, cho phép truy cập Internet Để kết nối router với mạng LAN, quản trị viên cần chọn router và thêm giao diện (Interface) vào subnet tương ứng Openstack hỗ trợ quản trị viên kết nối SSH đến từng máy ảo qua các công cụ như PuTTY và OpenSSH bằng cách tạo key pair Để khởi tạo key pair, quản trị viên cần truy cập vào menu thích hợp.
Để khởi tạo máy ảo (instance), quản trị viên cần vào menu Compute, chọn Key Pairs, sau đó nhấn Create Key Pair và nhập tên cho key pair Hệ thống sẽ cho phép tải key pair ngay sau khi khởi tạo Tiếp theo, để tạo instance, quản trị viên chọn Compute Instances, nhấn Launch Instance và nhập thông tin cần thiết như tên, mô tả, số lượng instance, hình thức boot hệ điều hành, dung lượng ổ ảo, hệ điều hành, loại flavor, dải mạng kết nối, các cơ chế bảo mật và key pair nếu sử dụng ssh Sau khi hoàn tất, quản trị viên có thể kiểm tra thông tin như port ssh, hoạt động của máy ảo và truy cập vào máy ảo qua console trên nền web.
Quản trị viên có thể nhanh chóng khởi tạo các instance (máy ảo) trong Project để thiết lập hệ thống mạng đa dạng, phục vụ cho việc cài đặt ứng dụng và hệ thống phần mềm của các phòng ban trong Nhà trường Sinh viên có thể truy cập các cụm máy ảo do giảng viên thiết lập từ xa để học tập và thực hành, trong khi giảng viên theo dõi tiến trình học tập của họ Việc thiết lập máy ảo không chỉ phục vụ cho học tập mà còn hỗ trợ các dự án khoa – viện, yêu cầu tính linh hoạt và khả năng mở rộng Openstack giúp quản trị viên dễ dàng chuyển đổi các instance, mở rộng cấu hình máy ảo, thiết lập kết nối mạng và điều chỉnh chính sách bảo mật mà không làm gián đoạn hoạt động của hệ thống.
OpenStack không chỉ hỗ trợ khởi tạo và thiết lập các instance mà còn giúp quản trị viên quản lý tài nguyên hiệu quả khi các instance tạm dừng hoặc bị hủy bỏ, từ đó tối ưu hóa việc sử dụng phần cứng Đặc biệt, nhu cầu hủy bỏ các máy ảo phục vụ cho sinh viên thực hành trong các môn học khác nhau qua từng kỳ học là rất cần thiết.
KẾT QUẢ ĐẠT ĐƯỢC VÀ KẾT LUẬN
Trong ngành giáo dục, đặc biệt là tại các trường đại học, việc triển khai các ứng dụng đào tạo và thực hành cần được thực hiện một cách phù hợp với từng đơn vị và đối tượng Do đó, việc áp dụng Private Cloud để quy hoạch và tối ưu hóa tài nguyên hệ thống server cho quản lý, học tập và giảng dạy là một nhu cầu thiết yếu Chúng ta cần xây dựng quy trình triển khai hệ thống bao gồm khảo sát, quy hoạch, thực hiện cài đặt và quản trị, cũng như kết nối các máy ảo trong hệ thống.
Trong luận văn này, chúng tôi đã tiến hành khảo sát hệ thống phần cứng hiện tại để triển khai và xây dựng mô hình tham chiếu Đồng thời, chúng tôi cũng đưa ra các bài toán quy hoạch máy chủ liên quan đến các mô hình PhyComp-PhyCon và PhyComp.
Chúng tôi đã triển khai mô hình CoPhyCon trên các máy chủ vật lý và đề xuất mô hình PhyComp-VirCon để đánh giá khả năng xử lý và hiệu suất sử dụng tài nguyên của hệ thống Qua việc so sánh ưu nhược điểm của các mô hình, PhyComp-VirCon được chọn làm giải pháp cho quy hoạch máy chủ Dựa trên mô hình này, chúng tôi đã thực hiện cài đặt máy ảo cho Controller node trên một máy vật lý, đồng thời mô tả quy trình cài đặt chi tiết theo tài liệu của OpenStack Hơn nữa, chúng tôi đã xây dựng quy trình quản trị hệ thống Private Cloud sử dụng OpenStack, bao gồm phân cấp chức năng của hệ thống như domain, project, user, role, và áp dụng mô hình này vào việc triển khai ứng dụng đào tạo trong môi trường đại học thông qua phân tích quy trình và các thao tác kỹ thuật liên quan.