1. Trang chủ
  2. » Công Nghệ Thông Tin

Giới thiệu và triển khái private cloud với openstack

64 124 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • LỜI NÓI ĐẦU

  • LỜI CẢM ƠN

  • DANH MỤC HÌNH ẢNH

  • CHƯƠNG 1. TỔNG QUAN VỀ CLOUD COMPUTING

    • 1.1 Đặt vấn đề

    • 1.2 Định nghĩa

    • 1.3 Mô hình tổng quan

    • 1.4 Các giải pháp

    • 1.5 Đặc điểm của cloud computing

    • 1.6 Xu hướng phát triển

    • 1.7 Các khó khăn, thách thức

    • 1.8 Hiện thực cloud computing

      • 1.8.1 Một số ví dụ về cách tính chi phí trong Cloud

      • 1.8.2 Kiến Trúc Market oriented Cloud computing:

  • CHƯƠNG 2. GIỚI THIỆU VỀ OPENSTACK

    • 2.1 Lịch sử hình thành

    • 2.2 Tổng quan về Openstack

      • 2.2.1 Khái niệm

      • 2.2.2 Cấu tạo

    • 2.3 Các thành phần của OpenStack

      • 2.3.1 OpenStack compute

      • 2.3.2 OpenStack Object Storage

    • 2.3.3 OpenStack Image Service

      • 2.3.4 OpenStack Dashboard (Horizon ) và OpenStack Identity

  • CHƯƠNG 3. QUẢN LÝ CẤU HÌNH

    • 3.1 Sơ lược về quản lý cấu hình

    • 3.2 Các tiêu chí đánh giá một hệ thống quản lý cấu hình

    • 3.3 Một số chương trình tiêu biểu

      • 3.3.1 CFEngine

      • 3.3.2 Puppet

      • 3.3.3 Chef

      • 3.3.4 Salt

    • 3.4 Những khó khăn trong triển khai thủ công hệ thống cloud OpenStack

    • 3.5 Lợi ích khi sử dụng trình quản lý cấu hình để triển khai hệ thống cloud OpenStack

    • 3.6 Salt

      • 3.6.1 Khái niệm

      • 3.6.2 Mô hình và thiết kế

      • 3.6.3 Master và Minion

      • 3.6.4 State

      • 3.6.5 SLS

      • 3.6.6 Renderers

      • 3.6.7 Pillar

      • 3.6.8 Grains

      • 3.6.9 Quá trình chạy một SLS

      • 3.6.10 Returner

  • CHƯƠNG 4: CÀI ĐẶT HỆ THỐNG PRIVATE CLOUD OPENSTACK SỬ DỤNG TRÌNH QUẢN LÝ CẤU HÌNH SALT

    • 4.1 Các công việc cần thực hiện khi cài đặt OpenStack

    • 4.2 Trên một node

      • 4.2.1 Thiết kế state cho mysql

      • 4.2.2 Thiết kế state cho rabbitmq

      • 4.2.3 Thiết kế state cho keystone

      • 4.2.4 Thiết kế state cho glance

      • 4.2.5 Thiết kế state cho nova

      • 4.2.6 Thiết kế state cho horizon

    • 4.3 Trên nhiều node

    • 4.4 Kết quả và đánh giá

      • 4.4.1 Kết quả

      • 4.4.2 Salt

      • 4.4.3 Đánh giá hiệu quả

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

Nội dung

Trong môi trường doanh nghiệp, khi nhu cầu sử dụng máy chủ tăng lên theo quy mô của doanh nghiệp cũng là lúc nảy sinh nhiều vấn đề. Trước hết là bài toán tối ưu để sử dụng tối đa công suất của các máy chủ, tránh tình trạng lãng phí tài nguyên, đồng thời đòi hỏi hệ thống có khả năng co giãn linh hoạt, chịu lỗi tốt để đảm bảo dịch vụ vẫn vận hành khi lượng tài nguyên trên một máy tăng cao hay có sự cố xảy ra. Tiếp đó là bài toán quản lý một lượng lớn máy chủ sao cho nhanh, hiệu quả, tốn ít nhân lực và thời gian nhất. Giải quyết hai vấn đề trên, trong đồ án này giới thiệu hai giải pháp cho lần lượt từng vấn đề là xây dựng đám mây OpenStack và sử dụng công cụ quản lý cấu hình Salt. Hai công nghệ này đều là các sản phẩm mã nguồn mở, miễn phí, có lượng người dùng đông đảo và đặc biệt là đã đạt được những thành công nhất định.

MỤC LỤC LỜI NĨI ĐẦU Trong mơi trường doanh nghiệp, nhu cầu sử dụng máy chủ tăng lên theo quy mô doanh nghiệp lúc nảy sinh nhiều vấn đề Trước hết toán tối ưu để sử dụng tối đa công suất máy chủ, tránh tình trạng lãng phí tài ngun, đồng thời địi hỏi hệ thống có khả co giãn linh hoạt, chịu lỗi tốt để đảm bảo dịch vụ vận hành lượng tài nguyên máy tăng cao hay có cố xảy Tiếp toán quản lý lượng lớn máy chủ cho nhanh, hiệu quả, tốn nhân lực thời gian Giải hai vấn đề trên, đồ án giới thiệu hai giải pháp cho vấn đề xây dựng đám mây OpenStack sử dụng cơng cụ quản lý cấu hình Salt Hai công nghệ sản phẩm mã nguồn mở, miễn phí, có lượng người dùng đơng đảo đặc biệt đạt thành công định OpenStack tập hợp chương trình mã nguồn mở chạy môi trường Linux, sử dụng công nghệ hàng đầu để xây dựng nên hệ thống cung cấp máy ảo theo nhu cầu người dùng OpenStack cho phép xây dựng hệ thống cloud mơi trường phần cứng tiêu chuẩn, khơng địi hỏi phần cứng hay phần mềm chuyên biệt Với thiết kế chia thành nhiều module tuân theo tiêu chuẩn có sẵn khiến cho chất lượng phận cấu thành OpenStack nhanh chóng phát triển hồn thiện, thiết kế cịn cho phép quản trị viên tùy ý lựa chọn chương trình có chức để thay thành phần mà họ khơng thích Cũng thiết kế module mà việc cài đặt OpenStack đòi hỏi nhà quản trị hệ thống phải có am hiểu cơng nghệ sử dụng bỏ cơng sức cấu hình thành phần để vận hành hệ thống cloud Mô hình cloud cho phép hệ thống sử dụng sức mạnh hàng nghìn máy tính, lượng máy tăng lên, việc quản lý máy tính bắt đầu gặp khó khăn, đặc biệt vấn đề quản lý cấu hình dịch vụ chạy máy chủ Các vấn đề gặp phải: • Cấu hình máy chủ khơng có quán: người quản lý nhiều máy chủ nhiều người quản lý máy chủ • Công việc lặp lặp lại gây nhàm chán, tốn thời gian, cơng sức, dễ nhầm lẫn • Các file cấu hình nằm phân tán khiến việc kiểm tra, thay đổi tốn nhiều thời gian • Tốn nhiều thời gian công sức lượng máy tăng lên đến 100 hay chí 1000 máy • Khó đảm bảo trạng thái dịch vụ máy Chương trình quản lý cấu hình đời để giải vấn đề nói Xuất từ lâu (như CFEngine - năm 1993), chương trình quản lý cấu hình ln phát triển thay đổi theo đổi hệ thống, có khả mở rộng tự động tốt hóa Chef, Puppet, CFEngine ba chương trình phổ biến lĩnh vực vào thời điểm Các chương trình đạt thành công định Bên cạnh thành cơng đó, chúng cịn nhiều nhược điểm đặc biệt vấn đề tính phức tạp file cấu hình khả mở rộng Salt dự án mã nguồn mở năm 2011 có phát triển nhanh, ln nhắm tới đơn giản, tính module phận cấu thành, khả mở rộng hệ thống quản lý cấu hình Bài tiểu luận thực tìm hiểu khái niệm điện tốn đám mây, sâu vào tìm hiểu hệ thống OpenStack Từ sử dụng Salt để cài đặt hệ thống IaaS cloud sử dụng OpenStack - hệ thống tương đối phức tạp để chứng minh đơn giản mà linh hoạt trình quản lý cấu hình Kết thu tập hợp file cấu hình giúp tiết kiệm thời gian, công sức việc triển khai hệ thống cloud, đồng thời giúp nhanh chóng dễ dàng mang lại trải nghiệm điện toán đám mây cho người dùng LỜI CẢM ƠN Em xin chân thành cảm ơn thầy PGS.TS Nguyễn Tiến Ban dành thời gian để hướng dẫn em hoàn thành tiểu luận Em xin chân thành cảm ơn thầy cô dạy dỗ, bảo tận tình cho em suốt năm học, giúp em có kiến thức thực tiểu luận này, sẵn sàng để trở thành kỹ sữ, đóng góp cho phát triển đất nước DANH MỤC HÌNH ẢNH CHƯƠNG TỔNG QUAN VỀ CLOUD COMPUTING 1.1 Đặt vấn đề Ngày nay, công ty, doanh nghiệp, việc quản lý tốt, hiệu liệu riêng công ty liệu khách hàng, đối tác toán ưu tiên hàng đầu khơng ngừng gây khó khăn cho họ Để quản lý nguồn liệu đó, ban đầu doanh nghiệp phải đầu tư, tính tốn nhiều loại chi phí chi phí cho phần cứng, phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa, … Ngồi họ cịn phải tính tốn khả mở rộng, nâng cấp thiết bị; phải kiểm soát việc bảo mật liệu tính sẵn sàng cao liệu Từ tốn điển vậy, thấy có nơi tin cậy giúp doanh nghiệp quản lý tốt nguồn liệu đó, doanh nghiệp khơng cịn quan tâm đến sở hạ tầng, công nghệ mà tập trung vào cơng việc kinh doanh họ mang lại cho họ hiệu lợi nhuận ngày cao Thuật ngữ “cloud computing” đời bắt nguồn từ hoàn cảnh Thuật ngữ “cloud computing” bắt nguồn từ ý tưởng đưa tất thứ liệu, phần mềm, tính tốn, … lên mạng Internet Chúng ta khơng cịn trơng thấy máy PC, máy chủ riêng doanh nghiệp để lưu trữ liệu, phần mềm mà số “máy chủ ảo” tập trung mạng Các “máy chủ ảo” cung cấp dịch vụ giúp cho doanh nghiệp quản lý liệu dễ dàng hơn, họ trả chi phí cho lượng sử dụng dịch vụ họ, mà không cần phải đầu tư nhiều vào sở hạ tầng quan tâm nhiều đến công nghệ Xu hướng giúp nhiều cho công ty, doanh nghiệp vừa nhỏ mà khơng có sở hạ tầng mạng, máy chủ để lưu trữ, quản lý liệu tốt Vậy “cloud computing” ? Nó giải tốn có đặc điểm bật ? Chúng ta qua phần sau để nắm rõ vấn đề 1.2 Định nghĩa Theo Wikipedia: “Điện toán đám mây (cloud computing) mơ hình điện tốn có khả co giãn (scalable) linh động tài nguyên thường ảo hóa cung cấp dịch vụ mạng Internet” Theo Gartner (http://www.buildingthecloud.co.uk/) : “Một mơ hình điện tốn nơi mà khả mở rộng linh hoạt công nghệ thông tin cung cấp dịch vụ cho nhiều khách hàng sử dụng công nghệ Internet” Theo Ian Foster: “Một mơ hình điện tốn phân tán có tính co giãn lớn mà hướng theo co giãn mặt kinh tế, nơi chứa sức mạnh tính tốn, kho lưu trữ, tảng (platform) dịch vụ trực quan, ảo hóa co giãn linh động, phân phối theo nhu cầu cho khách hàng bên ngồi thơng qua Internet” Hình 1.1: Mọi thứ tập trung vào đám mây 1.3 Mơ hình tổng quan Theo định nghĩa, nguồn điện toán khổng lồ phần mềm, dịch vụ nằm máy chủ ảo (đám mây) Internet thay máy tính gia đình văn phòng (trên mặt đất) để người kết nối sử dụng họ cần Hình 1.2: Minh họa cloud computing Hiện nay, nhà cung cấp đưa nhiều dịch vụ cloud computing theo nhiều hướng khác nhau, đưa chuẩn riêng cách thức hoạt động khác Do đó, việc tích hợp cloud để giải tốn lớn khách hàng vấn đề khó khăn Chính vậy, nhà cung cấp dịch vụ có xu hướng tích hợp cloud lại với thành “sky computing”, đưa chuẩn chung để giải toán lớn khách hàng Hình 1.3: Mơ hình tổng quan cloud computing 1.4 Các giải pháp Cloud Computing đời để giải vấn đề sau:  Vấn đề lưu trữ liệu:  Dữ liệu lưu trữ tập trung kho liệu khổng lồ Các công ty lớn Microsoft, Google có hàng chục kho liệu trung tâm nằm rải rác khắp nơi giới Các công ty lớn cung cấp dịch vụ cho phép doanh nghiệp lưu trữ quản lý liệu họ kho lưu trữ trung tâm  Vấn đề sức mạnh tính tốn: Có giải pháp chính:  Sử dụng siêu máy tính (super-computer) để xử lý tính tốn  Sử dụng hệ thống tính tốn song song, phân tán, tính tốn lưới (grid computing) Vấn đề cung cấp tài nguyên, phần mềm: Cung cấp dịch vụ IaaS (infrastructure as a service), PaaS (platform as a service), SaaS (software as a service) Chương sâu dịch vụ Hình 1.4: Minh họa dịch vụ 1.5 Đặc điểm cloud computing • Nhanh chóng cải thiện với người dùng có khả cung cấp sẵn tài nguyên sở hạ tầng cơng nghệ cách nhanh chóng tốn • Chi phí giảm đáng kể chi phí vốn đầu tư chuyển sang hoạt động chi tiêu Điều làm giảm rào cản cho việc tiếp nhận, chẳng hạn sở hạ tầng cung cấp đối tác thứ không cần phải mua để dùng cho tác vụ tính tốn thực lần hay chun sâu mà không thường xuyên Việc định giá dựa sở tính tốn theo nhu cầu tốt tùy chọn dựa việc sử dụng kỹ IT địi hỏi tối thiểu (hay khơng địi hỏi) cho việc thực thi • Sự độc lập thiết bị vị trí làm cho người dùng truy cập hệ thống cách sử dụng trình duyệt web mà khơng quan tâm đến vị trí họ hay thiết bị mà họ dùng, ví dụ PC, mobile Vì sở 10 Hình 4.1: Sơ đồ thứ tự cài đặt thành phần OpenStack Trong sơ đồ trên, thành phần ngang hàng thành phần cài lúc, thứ tự cài đặt dịch vụ từ xuống dưới, dịch vụ phụ thuộc vào dịch vụ mà hướng mũi tên tới Có thể thấy Nova phụ vào nhiều thành phần khác nên cài sau dịch vụnó phụ thuộc Horizon cần truy cập tới keystone để xác thực quyền truy cập cho phép người dùng quản lý hệ thống cloud giao diện web Dưới trình bày việc thực thiết kế state cài đặt openstack phiên Essex hệ điều hành Ubuntu 12.04 50 4.2 Trên node Việc thực cài đặt cloud node giúp mang lại trải nghiệm cloud nhanh cho người dùng, tránh khỏi vấn đề gặp phải chạy nhiều node, không mang lại ý nghĩa thực tế môi trường sản phẩm Hai dịch vụ Database AMQP cần cài đặt trước tiên chúng kênh lưu trữ giao tiếp chung cho hệ thống cloud Ở chọn hai chương trình tương ứng Mariadb RabbitMQ 4.2.1 Thiết kế state cho mysql Mariadb phiên tách rời phát triển từ MySQL từ sau Oracle mua lại Sun Với khả thay hoàn toàn MySQl, Mariadb giữ nguyên toàn tên dịch vụ, giao diện giao tiếp với chương trình, thư viện, đảm bảo cú pháp tương thích với MySQL Các công việc cần thực để cài đặt cấu hình Mariadb: Thêm địa kho phần mềm chứa Mariadb vào danh sách kho lưu trữ phầnmềm Ubuntu Thực state sau: mariadb_repo: pkgrepo: − managed − keyid: ’0xcbcb082a1bb943db’ − keyserver: keyserver.ubuntu.com − name: deb http://repo.maxindo.net.id/mariadb/repo/5.5/ubuntu precise main pkgrepo state thực thêm kho phần mềm (repository) vào danh sách kho phần mềm ubuntu Với tham số keyid chứa mã định danh key, keyserver: máy chủ chứa key, name: tên đầy đủ kho phần mềm chứa mariadb Công việc cài đặt mariadb thực Salt có điểm cần ý: trình cài đặt mariadb giao diện tương tác trực tiếp với người dùng nên trình chạy tự động Salt tìm cách để trả lời câu hỏi tương tác Có hai cách để thực việc này: • Viết trước câu trả lời đưa vào debconf, thư viện debconf nơi mà trình cài đặt tìm câu trả lời trước đưa câu hỏi với người dùng 51 • Do đặc thù mysql, trình cài đặt không hỏi thông tin mật root file debian.cnf tồn chứa mật Ở dùng cách State thực cài đặt mariadb chạy dịch vụ mysql sau: mariadb_repo: pkgrepo: − managed − keyid: ’0xcbcb082a1bb943db’ − keyserver: keyserver.ubuntu.com − name: deb http://repo.maxindo.net.id/mariadb/repo/5.5/ubuntu precise main /etc/mysql/debian.cnf: 10 file: 11 − managed 12 − source: salt://mariadb/debian.cnf 13 − mode: 600 14 − makedirs: True 15 16 /etc/mysql/my.cnf: 17 file: 18 − managed 19 − source: salt://mariadb/my.cnf.jinja2 20 − mode: 644 21 − makedirs: True 22 23 mariadb−server: 24 pkg: 25 − installed 26 − require: 27 − pkgrepo: mariadb_repo 28 − file: /etc/mysql/debian.cnf 29 − file: /etc/mysql/my.cnf 30 service: 31 − name: mysql 32 − running 33 − watch: 34 − file: /etc/mysql/my.cnf 35 − file: /etc/mysql/debian.cnf 36 − require: 37 − pkg: mariadb−server 52 State /etc/mysql/debian.cnf đảm bảo tồn file /etc/ mysql/debian.cnf với mode 600 đảm bảo user root xem nội dung file Nội dung file viết sẵn đường dẫn salt://mariadb/debian.cnf Đây đường dẫn tương thư mục chứa file top.sls Salt Nói cách khác thư mục mariadb nằm thư mục với file top.sls, debian.cnf nằm thư mục mariadb Thuộc tính makedirs: True đảm bảo thư mục /etc/mysql tạo khơng tồn Tương tự state /etc/mysql/my.cnf đảm bảo file cấu hình my.cnf nằm đường dẫn định trước với mode 644 - cho phép tất user hệ thống đọc user root có quyền thay đổi nội dung ID mariadb-server chứa hai state State pkg thực cài gói mariadbserver với thuộc tính require yêu cầu state mariadb_repo phải chạy trước đồng thời hai file cấu hình phải tồn trước gói nàyđược cài (để tránh q trình tương tác nói trên) State service thực chạy dịch vụ có tên mysql sau việc chạy state pkg thực xong, thuộc tính watch dịch vụ khởi động lại nội dung hai file cấu hình bị thay đổi Salt 4.2.2 Thiết kế state cho rabbitmq Dịch vụ rabbitmq cài đặt state sau: rabbitmq−server: pkg: − installed service: − running − enable: True rabbitmq−server: pkg: − installed 10 service: 11 − running 12 − enable: True Sau gói rabbitmq-server cài đặt, dịch vụ tương ứng Salt khởi động Khơng có u cầu đặc biệt cấu hình cần quản lý với dịch vụ này, nên ta sử dụng file cấu hình kèm với gói cài đặt 53 4.2.3 Thiết kế state cho keystone Bước thực cài đặt dịch vụ keystone, keystone cần cài đặt trước hết tất dịch vụ sử dụng keystone để thực xác thực trước thực hành động include: − essex.sqldata − python.mysqldb keystone: pkg: − installed − require: − pkg: python−mysqldb 10 service: 11 − running 12 − enable: True 13 − watch: 14 − file: keystone 15 − require: 16 − pkg: keystone 17 file: 18 − managed 19 − name: /etc/keystone/keystone.conf 20 − source: salt://essex/keystone.conf.jinja2 21 − template: jinja 22 − mode: 644 23 − user: root 24 − group: root 25 − required_in: 26 − service: keystone 27 cmd: 28 − wait 29 − name: ’keystone−manage db_sync’ 30 − watch: 31 − pkg: keystone 32 − require: 33 − mysql_grants: mysql_keystone 34 − service: keystone 35 36 /var/lib/keystone/keystone.db: 37 file: 54 38 − absent 39 − require: 40 − pkg: keystone 41 42 /usr/local/src/sample_data.sh: 43 file: 44 − managed 45 − source: salt://essex/sample_data.sh 46 − template: jinja 47 − mode: 700 48 49 /sample_data.sh: 50 cmd: 51 − wait 52 − cwd: /usr/local/src 53 − watch: 54 − cmd: keystone 55 − require: 56 − file: /usr/local/src/sample_data.sh 57 − mysql_grants: mysql_keystone Ở đầu SLS, câu lệnh include thực nhúng nội dung hai SLS essex.sqldata python.mysqldb vào SLS tại, state keystone.sls phụ thuộc vào state hai SLS Các state pkg, service file để cài đặt keystone đặc biệt so với state loại mariadb Sau dịch vụ keystone chạy, cần thực chạy hai câu lệnh để keystone hoạt động chức Trước hết, cần chạy câu lệnh "keystone-manage db_sync" để thực đồng liệu (tạo bảng cần thiết database) sau chạy script sample_data.sh để nhập vào liệu user, service role 4.2.4 Thiết kế state cho glance Sau keystone chạy, dịch vụ Image Service cần cài đặt để thực cung cấp file ảnh hệ điều hành cho máy ảo sử dụng Việc cài đặt cấu hình dịch vụ glance thực state sau: include: − essex.sqldata − essex.keystone glance: 55 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 pkg: − installed glance−services: service: − running − names: − glance−registry − glance−api − watch: − file: /etc/glance/glance−registry.conf − file: /etc/glance/glance−registry−paste.ini − file: /etc/glance/glance−api.conf − file: /etc/glance/glance−api−paste.ini − require: − pkg: glance {% for i in ("api.conf","api−paste.ini","registry.conf","registry−paste.ini")%} /etc/glance/glance−{{ i }}: file: − managed − source: salt://essex/glance−{{ i }} − require: − pkg: glance − required_in: − service: glance−services {% endfor %} glance_db_sync: cmd: − wait − name: "glance−manage version_control && glance−manage db_sync && service glance−api restart && service glance−registry restart" − require: − mysql_grants: mysql_glance − service: glance−services − cmd: /sample_data.sh − watch: − pkg: glance Glance bao gồm hai dịch vụ: glance-api glance-registry Đi kèm với dịch vụ hai file cấu hình SLS sử dụng vòng lặp for với danh sách 56 file cấu hình để tránh viết lặp lại phần giống state Hai dịch vụ theo dõi bốn file cấu hình restart cấu hình thay đổi Sau dịch vụ chạy, state glance_db_sync thực để đồng sở liệu nhằm tạo bảng cần thiết Với thuộc tính wait, câu lệnh chạy lần sau pkg: glance cài đặt dịch vụ ứng dụng cấu hình Trong thuộc tính require state này, mysql_grants state thực tạo database, user gán quyền cho user tạo Nội dung state có file essex.sqldata Để tự động trình tạo file ảnh, SLS images thực tải file ảnh hệ điều hành thu nhỏ với tên cirros đưa vào hệ thống file ảnh glance: include: − essex.glance cirros_image: file: − managed − name: /usr/local/src/cirros−0.3.0−x86_64−disk.img − source: https://launchpad.net/cirros/trunk/0.3.0/+download/ cirros−0.3.0−x86_64−disk.img 10 − source_hash: md5=50bdc35edb03a38d91b1b071afb20a3c 11 12 glance_add_cirros: 13 cmd: 14 − run 15 − name: OS_USERNAME={{ pillar["openstack"]["OS_USERNAME"] }} 16 OS_PASSWORD={{ pillar["openstack"]["OS_PASSWORD"] }} 17 SERVICE_TOKEN={{ pillar["openstack"]["SERVICE_TOKEN"] }} 18 OS_TENANT_NAME={{ State cirros_image thực đảm bảo tồn file đường dẫn /usr/local/src/cirros-0.3.0-x86_64-disk.img, với nội dung file lấy từ URL https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0x86\64disk.img, giá trị source_hash giúp đảm bảo file ảnh lấy nguyên vẹn, không bị thay đổi hay lỗi trình tải State glance_add_cirros thực câu lệnh "glance add" để thêm file ảnh cirros vào hệ thống file ảnh glance, câu lệnh địi hỏi 57 có mặt file ảnh cirros state glance_db_sync chạy trước Do đặc thù câu lệnh glance địi hỏi phải xác thực quyền trước thi hành, đoạn lệnh trước glance add thực gán biến môi trường cần thiết lấy từ pillar dùng biến với câu lệnh glance add 4.2.5 Thiết kế state cho nova Các dịch vụ compute cài đặt state nova.sls Quá trình thực cài đặt khơng có đặc biệt so với dịch vụ glance, việc thực script sau dịch vụ chạy để tạo network thêm luật bảo mật cho phép truy cập đến máy ảo qua cổng 22 ping đến máy nova_network_and_inject_key: cmd: − script − source: salt://essex/nova_sec.sh − template: jinja − require: − file: /tmp/id_rsa.pub − pkg: nova − cmd: run_sync_nova 10 − service: nova−services 4.2.6 Thiết kế state cho horizon Thành phần cuối để chạy cloud OpenStack dashboard với tên horizon, việc cài đặt dashboard thực đơn giản theo SLS sau: memcached: pkg: − installed service: − running openstack−dashboard: pkg: − installed 10 − require: 11 − pkg: memcached 58 Nội dung file top.sls: base: "∗": − essex.nova − essex.images − essex.keystone − essex.glance − essex.horizon 4.3 Trên nhiều node Việc cài đặt nhiều node đòi hỏi người cài đặt phải thiết kế trước mơ hình, kiến trúc hệ thống mà họ cài Tùy theo nhu cầu điều kiện cụ thể doanh nghiệp mà kiến trúc cloud trở nên khác biệt Ví dụ với doanh nghiệp cần lưu trữ nhiều, hệ thống node để lưu trữ tăng lên, đường mạng cẩn đảm bảo khả truyền dẫn để không gây tượng nghẽn cổ chai lưu lượng truyển tải cao Với doanh nghiệp cần sử dụng nhiều máy ảo cần lượng tài nguyên CPU, RAM nhiều, việc cài đặt compute node cần thiết Với compute node, cần cài dịch vụ ‘novacompute‘, cấu hình thơng số phù hợp sử dụng Các thông số cần thay đổi địa IP máy host, địa tự động lấy thơng qua grains, ngồi cần điền thơng sốvề địa mysql server, rabbitmq server cung cấp qua pillar để dễ dàng thay đổi cần thiết SLS cài compute node: nova−compute: pkg: − installed service: − running − watch: − file: /etc/nova/nova.conf − file: /etc/nova/api−paste.ini − require: 10 − pkg: nova−compute 11 12 /etc/nova/api−paste.ini: 59 13 file: 14 − managed 16 − source: salt://essex/api−paste.ini 17 − template: jinja 18 19 /etc/nova/nova.conf: 20 file: 21 − managed 22 − source: salt://essex/nova.conf 23 − template: jinja 4.4 Kết đánh giá 4.4.1 Kết Sau chạy xong state để triển khai máy, thu cloud OpenStack với đầy đủ thành phần thiết yếu, dịch vụ chạy ổn định, đăng nhập vào dashboard với tài khoản mật định trước pillar tạo máy ảo từ file ảnh cirros đưa vào • • • • • Số máy vật lý: Hệ điều hành máy vật lý: Ubuntu 12.04 LTS Tổng dung lượng RAM có: GB Số máy ảo cirros dựng lên từ dashboard: Tất dịch vụ cài đặt hoạt động tốt: mysql, rabbitmq, nova, keystone, glance, horizon • Có thể quản lý máy ảo (tạo mới, tắt, xóa) dashboard horizon • Các máy ảo dựng lên hoạt động ổn định, đầy đủ chức mà cirros cung cấp ping đến đến máy thật địa mạng internet, dịch vụ ssh cirros chạy ổn định, cho phép người dùng ssh từ vào 4.4.2 Salt Sau trình viết state, thu file SLS thực cài toàn dịch vụ thiết yếu OpenStack Các state chạy máy sử dụng hệ điều hành Ubuntu 12.04 để cài đặt hệ thống cloud hoàn chỉnh với số compute node tùy ý Việc sử dụng Salt giúp việc cài đặt cloud lần sau trở nên 60 vô đơn giản với cơng việc điền thông số cần thiết (IP máy cài mysql, IP máy cài rabbitmq, subnet mạng sử dụng, ) chạy state Đặc biệt cần thay đổi cấu hình, cụ thể cần thay đổi địa máy chạy dịnh vụ mysql, cần thay đổi lần file nhất, Salt giúp phân tán file đến tất máy compute node restart lại dịch vụ nova-compute để áp dùng cấu hình Triển khai node, tổng thời gian trình cài đặt tổng thời gian tải cài đặt gói cộng với thời gian tải file ảnh cirros, phần cơng việc cịn lại chiếm thời gian khơng đáng kể Tốc độ q trình chủ yếu phụ thuộc vào tốc độ đường truyền internet Nếu thực cache trước file ảnh gói cần cài, trình chạy state gồm thời gian cài đặt gói, mơ hình thử nghiệm, khoảng thời gian dao động từ 7-10 phút, thời gian thực khác tùy theo tốc độ CPU, RAM đĩa cứng máy host Salt với ngơn ngữ cấu hình đơn giản giúp việc viết state khơng có khó khăn, với khả định thứ tự chạy state giúp việc cài đặt theo thứ tự định đảm bảo Các dịch vụ salt(salt-master, salt-minion) chạy ổn định, sử dụng CPU RAM 4.4.3 Đánh giá hiệu • Cần cài đặt thành công lần trước viết state để có file cấu hình chuẩn • Trên node, việc cài đặt nhanh đáng kể so với cài đặt tay • Thời gian viết state phụ thuộc chủ yếu vào thành thạo Salt hiểu biết dịch vụ cần cài người viết Tổng số dòng tất file SLS thực cài đặt: khoảng 265 dòng, với khoảng 6800 ký tự • Thời gian cài hai node thời gian cài đặt node Điều lý giải Salt thực hai trình cài đặt lúc hai máy khác nhau, nên thời gian cài đặt máy lâu thời gian q trình cài đặt Do q trình cài đặt có sử dụng cache gói phần mềm nên node tải cài gói mysql, rabbitmq, keystone, glance node thực tải gói nova61 compute Khi node cần cài nova-compute khơng tốn thời gian để tải gói (do vừa cache lại) dẫn đến kết thu 62 KẾT LUẬN Bài tiểu luận thực tìm hiểu cài đặt OpenStack - hệ thống giúp triển khai mơ hình IaaS cloud, giải pháp đại hiệu cho doanh nghiệp có nhu cầu sử dụng nhiều máy chủ Mơ hình thử nghiệm dựng lên hệ thống IaaS cloud chạy máy tính, có khả cung cấp máy ảo cách nhanh chóng Các dịch vụ thành phần cloud chạy ổn định thực chức mong đợi Kết hợp với tìm hiểu ứng dụng cơng cụ quản lý cấu hình SaltStack, việc cài đặt quản lý hệ thống cloud trở nên nhanh chóng, hiệu nhiều lần Kết thu tập hợp file SLS cho phép cài đặt quản trị hệ thống OpenStack cloud nhanh chóng nhiều máy tính chạy hệ điều hành Ubuntu 12.04, chứng minh cho tính khả thi giải pháp sử dụng OpenStack Salt để thực cung cấp quản lý lượng lớn máy chủ cho doanh nghiệp Do điều kiện sở vật chất không cho phép nên tiểu luận dừng lại việc dựng mô hình cloud máy vật lý, chưa thể giải toán thực tế cung cấp lượng lớn server mà cung cấp khoảng 10 server nhỏ, chạy dịch vụ dịch vụ ln trạng thái rảnh Bài tiểu luận tiếp tục phát triển theo hướng giải toán cụ thể, thực cung cấp server cho dự án thật kết hợp với viết state để tự động trình cài đặt quản lý cấu hình, đồng thời cài đặt thêm thành phần tùy chọn OpenStack Storage để thực lưu trữ phân tán Bài tiểu luận thực tìm hiểu hai cơng nghệ lớn với hai sản phẩm cịn mẻ nên việc thiếu xót khơng thể tránh khỏi, em mong nhận phản hồi đóng góp thầy để có tài liệu tốt cho thân em nói riêng cho ngành cơng nghệ thơng tin nước nhà nói chung 63 TÀI LIỆU THAM KHẢO • • • • • • • • • • • http://aws.amazon.com/ http://blogs.technet.com http://docs.openstack.org http://en.wikipedia.org/wiki/ http://www.heroku.com/ http://www.windowsazure.com/en-us/ https://drive.google.com/ http://saltstack.com/ http://cfengine.com/ http://www.opscode.com/chef/ https://puppetlabs.com/ 64

Ngày đăng: 09/03/2021, 14:20

TỪ KHÓA LIÊN QUAN

w