Launch instance trong OpenStack

1. Images, Storage, và Instance

  • Images là các ảnh mẫu của đĩa cứng (disk image templates) của file system máy ảo. Có thể hiểu đó là các template máy ảo. OpenStack sử dụng Image service – Glance cho việc lưu trữ và quản lý các template ảnh này.
  •  Instances là các máy ảo chạy trên các node vật lý (trên nền tảng của 1 hypervisor). OpenStack sử dụng compute service – Nova để tương tác với các Hypervisor, từ đó quản lý các Instances. Openstack Nova hỗ trợ gần như tất cả các loại Hypervisor hiện nay như VMware, Hyper-V, Xen, và đặc biệt Hypervisor mặc định trong OpenStack chính là KVM. Các instances có thể được khởi tạo từ 1 ảnh chung (ví dụ ảnh của HĐH Ubuntu, Windows 7, …) và trong trường hợp này, mỗi instance chạy một bản copy của file ảnh gốc, file ảnh gốc được giữ nguyên vẹn cho việc sử dụng của các instances được khởi tạo sau. Việc Snapshots một instance đang chạy trong OpenStack sẽ tạo ra một image mới dựa trên disk hiện tại của instance được snapshot.

Ví dụ: Trong hệ thống có 1 file ảnh Ubuntu12.04LTS. Instance thứ nhất được khởi tạo sử dụng file ảnh này sẽ copy toàn bộ file ảnh này sang compute node để sử dụng. Trong quá trình sử dụng có sự thay đổi nào cũng không ảnh hưởng đến file ảnh gốc. Instance thứ 2, 3, … nếu sử dụng lại file ảnh Ubuntu 12.04 LTS sẽ lấy file gốc được lưu trữ quản lý bởi Glance để sử dụng lại. Trong trường hợp Instance 1 được snapshot thành 1 image Ubuntu12.04LTS-v2 thì những Instances sau sử dụng image Ubuntu12.04LTSv2 sẽ kế thừa các đầy đủ dữ liệu của Instance 1.

  • Khi khởi động một Instance, một lượng tài nguyên tương ứng sẽ được lựa chọn để gán cho instance này, thông tin về tài nguyên tương ứng với instance trong OpenStack gọi là Flavor. Flavor cho biết có bao nhiêu vCPUs, lượng RAM, và size của ephemeral disks. Mặc định, OpenStack định nghĩa sẵn một số Flavor và cho phép tạo thêm, hoặc edit dễ dàng các Flavor.
  • Các tài nguyên khác như persistent volume storage và địa chỉ IP có thể được thêm vào hoặc bỏ đi đối với các instance đang hoạt động. Ví dụ có thể thêm hoặc bỏ đi một cinder-volume (chính là 1 persistent block storage) cho 1 instance đang hoạt động.

2. Khởi tạo instance

– Hình ảnh dưới đây mô tả các hệ thống cần thiết cho việc khởi tạo 1 instance. Để khởi tạo 1 instance cần thiết phải có:
+ 1 hệ thống lưu trữ và quản lý ảnh (Glance) và có sẵn ít nhất 1 image template (ví dụ Cirros, Ubuntu 12.04, Fedora, …)
+ Trong cloud phải có ít nhất 1 available compute node để cung cấp các tài nguyên vCPU, RAM, và local disk.
+ Hệ thống có thể có thêm cinder-volume service với một số volume đã được định nghĩa để có thể gán cho instance.

0

  • Để launch một instance thì chọn 1 image, 1 flavor, compute node để chạy máy ảo và các tham số khác. Trong hình vẽ bên dưới, một root volume (vda) và thêm một ephemeral storage (vdb) được gán cho instance (thông tin này đã được Flavor cố định chọn lựa). Ngoài ra có thể thêm một volume từ cinder-volume vào instance – thành một virtual disk thứ 3 cho máy ảo này.

1

  • Hệ thống OpenStack sẽ copy ảnh gốc (base image) từ nơi lưu trữ ảnh (có thể là local disk hoặc object storage-swift) đến local disk của compute node và sử dụng cho quá trình tạo máy ảo. Base image được sử dụng cho phân vùng đầu tiên (vda) của instance. Hệ thống cũng đồng thời tạo ra 1 empty disk (vdb) làm virtual disk thứ 2 cho instance này. Sau đó, compute node gán cinder-volume sử dụng iSCSI cho instance thành virtual disk thứ 3 (vdc). Tài nguyên vCPU và RAM được cung cấp bởi compute node và instance được boot từ drive đầu tiên (vda).

P.S: Instance sử dụng các disk có màu đỏ trong hình.

Thực ra có rất nhiều hệ thống với các kiến trúc khác nhau nên việc mô tả khởi tạo Instance sẽ không giống nhau, đặc biệt trong việc lưu trữ instance, image, volume. Ví dụ việc mô tả 2 virtual disk đầu tiên của instance (vda, vdb) trong trường hợp này được lấy từ Localdisk của Compute node, tuy nhiên trong các hệ thống khác có thể triển khai các hệ thống lưu trữ tập trung như NFS, kết nối SAN, … để khởi tạo các Disk cho instances.

3. Xóa Instance

2

Khi instance được sử dụng xong và bị xóa hoàn toàn khỏi hệ thống:

  •   Các virtual disk (ephemeral storage) của instance sẽ bị xóa
  •   Tài nguyên vCPU, RAM được giải pháp, ngoài trừ dữ liệu trên persistent volume vẫn còn nguyên.
  •   Persistent volume (cinder-volume) không bị xóa
  •   Base image vẫn giữ nguyên.

Nguồn tham khảo: http://docs.openstack.org/grizzly/openstack-compute/admin/content/images-and-instances.html

4. Launch instance trong OpenStack sử dụng command line

Một số thao tác cơ bản xoay quanh việc vận hành, quản trị các images và instances trong OpenStack.
Điều kiện thực hiện: đã khai báo các biến môi trường tương đương của project, ví dụ như USERNAME, PASSWORD, TENANT, AUTH_URL. Ví dụ:

Có thể khai báo bằng tay hoặc thông thường sẽ tạo ra 1 file rồi chạy 1 lần.

4.1. Xem danh sách các Flavor trong hệ thống

Ở đây có các Flavor mặc định của OpenStack kèm theo 1 Flavor m1.my được định nghĩa thêm.

4.2. Xem danh sách các images trong hệ thống

4.3. Xem các network đã được tạo trong hệ thống

Hệ thống đang có 3 network: int_net, int_net_2, ext_net. Trong đó ext_net chứa dải IP Floating để cấp cho các instance để truy cập từ ngoài vào máy ảo.

4.4. Xem các Security Group trong hệ thống:

4.5. Tạo 1 instance có tên là cirrosdemo từ image Cirros

4.6. Xem danh sách các instances trong hệ thống

2 bình luận về “Launch instance trong OpenStack

Bình luận