Bài 3: Máy ảo (Virtual Machine) - Tự Học Vmware VSphere 7

Mục lục

  • I. Tạo máy ảo
    • 1. Các cách tạo máy ảo
    • 2. Tạo máy ảo với New Virtual Machine Wizard
    • 3. Cài đặt Guest Operating System (Hệ điều hành trên VM)
    • 4. Triển khai OVF Templates
    • 5. Giới thiệu VMware Tools
    • 6. Cài đặt VMware Tools
    • 7. Tải VMware Tools
  • II. Tìm hiểu sâu về phần cứng máy ảo
    • 1. Đóng gói Virtual Machine
    • 2. Virtual Machine Files
    • 3. VM Virtual Hardware
    • 4. Virtual Hardware Versions
    • 5. CPU and Memory
    • 6. Virtual Storage
    • 7. Thick-Provisioned Virtual Disks
    • 8. Thin-Provisioned Virtual Disks
    • 9. So sánh Thick-Provisioned và Thin-Provisioned Disks
    • 10. Virtual Networks
    • 11. Virtual Network Adapters
    • 12. Virtual Devices khác
    • 13. Virtual Machine Console
  • III. Giới thiệu về Container
    • 1. Phát triển ứng dụng truyền thống
    • 2. Phát triển ứng dụng hiện đại
    • 3. Lợi ích của Microservices và Containerization
    • 4. Container thuật ngữ
    • 5. Giới thiệu Containers
    • 6. Container Hosts
    • 7. Containers at Runtime
    • 8. Container Engines
    • 9. Virtual Machines vs Containers
    • 10. Kubernetes

I. Tạo máy ảo

1. Các cách tạo máy ảo

Bạn có thể tạo máy ảo theo một số cách:

• Sử dụng Trình Hướng Dẫn Máy Ảo Mới (New Virtual Machine Wizard) để tạo những máy ảo đơn lẻ bằng cách sử dụng: – The vSphere Client – VMware Host Client

• Sử dụng vSphere Client để triển khai VM ở các định dạng sau: – Máy ảo mới từ các templates hiện có hoặc clone (nhân bản) – VMs, virtual appliances, và vApps được lưu trữ ở định dạng OVF

2. Tạo máy ảo với New Virtual Machine Wizard

Bạn có thể sử dụng New Virtual Machine Wizard trong vSphere Client để tạo một máy ảo

Bạn có thể sử dụng New Virtual Machine Wizard trong VMware Host Client để tạo một máy ảo

Cấu hình VM sẽ dựa trên các lựa chọn trước đó mà bạn đã thực hiện về hệ điều hành

3. Cài đặt Guest Operating System (Hệ điều hành trên VM)

Cài đặt guest operating system trong máy ảo của bạn tương tự như cài đặt nó trên một máy tính vật lý.

4. Triển khai OVF Templates

Bạn có thể triển khai bất kỳ máy ảo hoặc virtual appliance được lưu trữ ở định dạng OVF

Virtual appliance là các máy ảo được cấu hình sẵn:

• Chúng thường được thiết kế cho một mục đích duy nhất. • Chúng cũng có sẵn từ VMware Solution Exchange.

5. Giới thiệu VMware Tools

VMware Tools là một tập hợp các tính năng giúp nâng cao hiệu suất của hệ điều hành của VM (VM’s guest operating system).

Các lợi ích và tính năng bao gồm: • Trình điều khiển thiết bị (Device drivers) – SVGA display – VMXNET / VMXNET3 – Balloon driver để quản lý bộ nhớ – Sync driver điều khiển để tạm dừng I/O • Tăng hiệu suất đồ họa • Cải thiện hiệu suất chuột • Dịch vụ Guest OS heartbeat • Đồng bộ hóa thời gian • Khả năng shut down máy ảo

6. Cài đặt VMware Tools

Đảm bảo rằng bạn chọn đúng phiên bản VMware Tools cho hệ điều hành khách của mình. Để tìm file ISO nào của VMware Tools được đi kèm với vSphere 7, hãy xem vSphere 7 Release Notes. Phương pháp cài đặt VMware Tools tùy thuộc vào loại hệ điều hành khách.

Loại Guest Operating System Phương thức cài VMware Tools
Microsoft Windows Cài đặt từ windows.iso cho Vista trở lên.
Linux Để cho phép vSphere quản lý cài đặt, hãy cài đặt từ linux.iso. Để cho phép hệ điều hành khách quản lý cài đặt, hãy sử dụng open-vm-tools, có sẵn trong các hệ thống quản lý gói Linux khác nhau, chẳng hạn như yum, apt hoặc rpm.
MacOS Cài đặt từ darwin.iso cho Mac OS X phiên bản 10.11 trở lên.
Solaris Cài đặt từ solaris.iso cho Solaris phiên bản 10 trở lên.

7. Tải VMware Tools

Bạn có thể tải xuống một phiên bản cụ thể của VMware Tools từ trang download VMware vSphere.

II. Tìm hiểu sâu về phần cứng máy ảo

1. Đóng gói Virtual Machine

vSphere đóng gói mỗi máy ảo thành một tập hợp VM files.

VM files được lưu trữ trong các thư mục trên VMFS, NFS, vSAN hoặc vSphere Virtual Volumes datastore.

2. Virtual Machine Files

VM bao gồm một tập hợp các tệp liên quan.

3. VM Virtual Hardware

VM sử dụng phần cứng ảo

4. Virtual Hardware Versions

Virtual hardware version hoặc mức độ tương thích của máy ảo, xác định các chức năng của hệ điều hành mà máy ảo hỗ trợ. Không sử dụng phiên bản mới hơn không được sản phẩm VMware hỗ trợ

Compatibility  Virtual Hardware Version
ESXi 7.0 17
ESXi 6.7 U2 and later 15
ESXi 6.7 and later 14
ESXi 6.5 and later 13
ESXi 6.0 and later 11
Virtual hardware versions 12 và 16 dành cho Workstation and Fusion Pro.

5. CPU and Memory

Bạn có thể thêm, thay đổi hoặc cấu hình tài nguyên CPU và bộ nhớ để cải thiện hiệu suất máy ảo. Số lượng CPU ảo (vCPU) tối đa mà bạn có thể gán cho một máy ảo phụ thuộc vào các yếu tố sau: • Số lượng logical CPU trên máy chủ • Loại hệ điều hành (guest OS) được cài đặt trên VM

Máy ảo chạy trên máy chủ ESXi 7.0 có thể có tối đa 256 vCPU. Kích thước bộ nhớ tối đa của máy ảo phụ thuộc vào cài đặt tương thích của máy ảo. Kích thước bộ nhớ tối đa của máy ảo tương thích với ESXi 7.0 chạy trên ESXi 7.0 là 6 TB

6. Virtual Storage

Virtual disks được kết nối với virtual storage adapters.

ESXi host cung cấp cho máy ảo một số lựa chọn trong storage adapters:

• BusLogic Parallel • LSI Logic Parallel • LSI Logic SAS • VMware Paravirtual SCSI • AHCI SATA controller • Virtual NVMe

7. Thick-Provisioned Virtual Disks

Thick provisioning sử dụng tất cả không gian đĩa được khai báo khi tạo đĩa ảo.

VM disks sử dụng tất cả dung lượng, như được khai báo khi khởi tạo, không quan tâm lượng dữ liệu thực dùng của Guest OS

Các loại đĩa Thick-provisioned là eager zeroed hoặc lazy zeroed:

• Trong eager-zeroed thick-provisioned disk mọi block đều được điền trước bằng số 0. • Trong lazy-zeroed thick-provisioned disk mọi block được điền bằng số 0 khi dữ liệu được ghi đến block

8. Thin-Provisioned Virtual Disks

Với thin provisioning, máy ảo sử dụng không gian lưu trữ khi cần thiết:

Virtual disks chỉ sử dụng dung lượng cần thiết để chứa các tệp hiện tại. • Máy ảo luôn nhìn thấy kích thước đĩa được cấp phát đầy đủ.

Chạy lệnh unmap để lấy lại không gian chưa sử dụng từ array

Báo cáo và cảnh báo giúp quản lý phân bổ và dung lượng.

Bạn có thể kết hợp thick và thin formats

Sử dụng hiệu quả hơn dung lượng lưu trữ, ví dụ: • Dung lượng được cung cấp cho virtual disks: 140 GB • Dung lượng datastore hiện có: 100 GB • Dung lượng datastore đã sử dụng: 80 GB

9. So sánh Thick-Provisioned và Thin-Provisioned Disks

Các tùy chọn đĩa ảo khác nhau về thời gian tạo, phân bổ block, bố cục và đánh dấu trước bằng số 0 ở block được phân bổ

Thick Provisioned Lazy-Zeroed Thick Provisioned Eager-Zeroed Thin Provisioned
Thời gian tạo Nhanh. Chậm và tỷ lệ thuận với kích thước đĩa Nhanh nhất
Phân bổ block  Phân bổ trước đầy đủ Phân bổ trước đầy đủ Được phân bổ và Zeroed out theo yêu cầu lúc đầu ghi vào khối.
Virtual disk layout  Cơ hội cao hơn ghi vào các block liền kề Cơ hội cao hơn ghi vào các block liền kề Bố cục thay đổi tùy theo trạng thái động của block tại thời điểm phân bổ khối.
Zeroing out of allocated file blocks File blocks được zeroed out khi mỗi khối được ghi vào lần đầu tiên.” File blocks được phân bổ và zeroed out khi đĩa được tạo File blocks được zeroed out khi blocks được cấp phát.

10. Virtual Networks

Máy ảo và máy vật lý giao tiếp thông qua mạng ảo

Khi bạn cấu hình mạng cho một máy ảo, bạn chọn hoặc thay đổi các cài đặt sau: • Loại Network adapter • Port group để kết nối • Trạng thái kết nối mạng • Có kết nối với mạng khi máy ảo bật nguồn hay không

11. Virtual Network Adapters

Khi bạn cấu hình một máy ảo, bạn có thể thêm network adapters (NIC) và chỉ định loại adapter. Bất cứ khi nào có thể, hãy chọn VMXNET3

Network Adapter Type  Description
E1000-E1000E  Phiên bản mô phỏng của Intel Gigabit Ethernet NIC, với trình điều khiển có sẵn trong hầu hết các Guest OS
VMXNET3  Chỉ có sẵn với VMware Tools.
Flexible  Có thể hoạt động như một Vlance hoặc VMXNET adapter.
SR-IOV pass-through  Cho phép VM và physical adapter trao đổi dữ liệu mà không cần sử dụng VMkernel làm trung gian.
vSphere DirectPath I/O  Cho phép VM truy cập vào các physical PCI network với I/O memory management unit.
PVRDMA  Thiết bị ảo hóa cung cấp hiệu suất thiết bị ảo được cải thiện. Nó cung RDMA-like interface cho vSphere guests.

12. Virtual Devices khác

Máy ảo phải có vCPU và RAM ảo. Việc bổ sung các thiết bị ảo khác làm cho VM hữu ích hơn:

• Ổ đĩa CD / DVD: Để kết nối với đĩa CD, DVD hoặc ISO image . • USB 3.0 và 3.1 • Ổ đĩa mềm: Để kết nối máy ảo với ổ đĩa mềm hoặc hình ảnh đĩa mềm. • Generic SCSI devices: Một máy ảo có thể được kết nối với SCSI adapters. • vGPUs: Máy ảo có thể sử dụng GPU trên máy chủ vật lý cho các hoạt động tính toán cao.

13. Virtual Machine Console

VM console cung cấp các tính năng chuột, bàn phím và màn hình để điều khiển máy ảo.

Bạn có thể sử dụng VMware Remote Console Application (VMRC) để kết nối với các thiết bị khách

Máy ảo

III. Giới thiệu về Container

1. Phát triển ứng dụng truyền thống

Trong trung tâm dữ liệu, các ứng dụng truyền thống được tăng cường với các khả năng và mô hình ứng dụng hiện đại. Nhưng phát triển ứng dụng truyền thống khác với phát triển ứng dụng hiện đại

Traditional Application Development
Waterfall development (Mô hình thác nước) Chu kỳ phát triển tương đối dài (vài tháng). Các yêu cầu có thể thay đổi theo thời gian
Handover to the operations team (Bàn giao cho đội vận hành) Nhóm vận hành chịu trách nhiệm cho code trong production. Đào tạo không được cung cấp.
Monolithic applications (Ứng dụng nguyên khối) Tất cả các chức năng được xử lý bởi một ứng dụng lớn duy nhất. Thông thường, các ứng dụng nguyên khối chỉ có thể được thu nhỏ theo chiều dọc, không theo chiều ngang.
Riêng biệt môi trường development, staging, và production environments Sự không nhất quán giữa các môi trường.

2. Phát triển ứng dụng hiện đại

Sự phát triển ứng dụng hiện đại đang làm thay đổi mô hình kinh doanh

Modern Application Development
Thường sử dụng microservices kiến trúc. Các ứng dụng nguyên khối được chia thành nhiều chức năng hoặc dịch vụ mô-đun độc lập nhỏ hơn giúp các nhà phát triển dễ dàng đổi mới và thay đổi code
Giảm thiểu thời gian triển khai Tăng tốc quá trình triển khai code vào môi trường staging để thử nghiệm Xác định và giải quyết các lỗi gần như ngay lập tức. Triển khai nhanh chóng ở quy mô nhỏ, gia tăng trong môi trường production và dễ dàng rút lui nếu có vấn đề phát sinh. “
Cung cấp các bản cập nhật và tính năng một cách nhanh chóng. Giảm thiểu thời gian xây dựng, thử nghiệm và phát hành các tính năng mới.
Tăng chất lượng sản phẩm và tránh rủi ro. Tự động hóa các bài kiểm tra, nhận phản hồi của người dùng và cải tiến phần mềm theo cách lặp đi lặp lại.
Ít yêu cầu tài nguyên hơn và năng suất cao hơn. Áp dụng continuous development and continuous để giảm bớt nhân lực

3. Lợi ích của Microservices và Containerization

Container là một công nghệ lý tưởng để hỗ trợ microservices vì mục tiêu của container (nhẹ, dễ đóng gói, có thể chạy ở mọi nơi) phù hợp với mục tiêu của kiến trúc microservices.

Máy ảo

4. Container thuật ngữ

Term  Định nghĩa
Container Một application được đóng gói với dependencies
Container engine Một runtime engine quản lý các containers
Docker Là một runtime engine, được công nhận nhiều nhất, hỗ trợ container và nó thường được sử dụng như một từ đồng nghĩa với nhiều khía cạnh của công nghệ container
Container host Máy ảo hoặc máy vật lý mà trên đó có containers và container engine đang chạy
Kubernetes Google-developed orchestration cho containers

5. Giới thiệu Containers

Container là sự đóng gói của ứng dụng và các mã nhị phân và thư viện phụ thuộc. Ứng dụng được tách khỏi hệ điều hành và trở thành serverless function

Máy ảo

Các lý do mà Container được sử dụng phổ biến bởi các nhà phát triển phần mềm là: • Chúng làm cho việc viết mã dễ dàng hơn, cục bộ và ở bất kỳ đâu. • Bạn có thể triển khai và kiểm tra các ứng dụng một cách nhanh chóng trong môi trường staging. Không cần hệ điều hành hoặc tải

6. Container Hosts

Container host, chạy hệ điểu hành (OS), là nơi container hoạt động

Container host có thể thuộc các loại sau: • Hệ điều hành tiêu chuẩn với container engine được cài đặt sẵn: – Ubuntu với Docker • Hệ điều hành được phát triển đặc biệt với các containers: – Hệ điều hành Photon – Fedora CoreOS • Máy ảo hoặc máy vật lý: – Trong số nhiều lợi ích của việc sử dụng VM là dễ dàng quản lý và khả năng mở rộng.

Máy ảo

7. Containers at Runtime

Containers có các đặc điểm sau: • Một Container có thể chạy trên bất kỳ máy chủ chứa nào có cùng nhân hệ điều hành được chỉ định bởi container đó. • Một container đang chạy được truy cập bằng FQDN hoặc địa chỉ IP duy nhất của nó. • Mỗi container chỉ có thể truy cập tài nguyên của chính nó trong môi trường chia sẻ. Khi bạn đăng nhập vào container bằng Terminal (chẳng hạn như SSH), bạn không thấy dấu hiệu nào cho thấy các container khác đang chạy trên cùng một máy chủ.

8. Container Engines

Container engine là một control plane được cài đặt trên mỗi container host. Control plane quản lý các containers trên máy chủ đó.

Máy ảo

Container engines thực hiện một số chức năng: • Xây dựng container images từ source code (ví dụ: Dockerfile). Ngoài ra, load container images tù repository. • Tạo running containers dựa trên container image.. • Commit a running container to an image • Lưu image và đẩy nó vào một kho lưu trữ. • Dừng và loại bỏ các containers • Tạm dừng và khởi động lại các containers • Báo cáo tình trạng container.

9. Virtual Machines vs Containers

Máy ảo cung cấp phần cứng ảo mà hệ điều hành khách sử dụng để chạy các ứng dụng. Nhiều ứng dụng chạy trên một máy ảo duy nhất nhưng chúng được tách biệt và cô lập về mặt luận lỳ

Với containers, các nhà phát triển sử dụng hệ thống tệp hệ điều hành và chỉ lớp trên các mã nhị phân và thư viện mà ứng dụng phụ thuộc vào.

Máy ảo

VMs và containers hoạt động theo những cách khác nhau

Virtual Machines  Containers
Đóng gói toàn bộ hệ điều hành “Đóng gói ứng dụng với các thư viện và binaries
Quản lý bởi hypervisor Quản lý bởi container host OS
Chạy trên hypervisor Chạy trên container host OS
Khởi động máy ảo nghĩa là khởi động hệ điều hành (giây đến phút) Bắt đầu một container có nghĩa là khởi động ứng dụng (mili giây đến giây)

10. Kubernetes

Các containers được quản lý trên một container host duy nhất. Việc quản lý containers chứa trên nhiều container host sẽ tạo ra nhiều vấn đề: • Quản lý số lượng lớn các containers • Khởi động lại containers không thành công • Mở rộng containers để đáp ứng công suất • Kết nối mạng và cân bằng tải

Kubernetes cung cấp một lớp điều phối để giải quyết những vấn đề này. Kubernetes là một hệ thống mã nguồn mở để tự động hóa việc triển khai, mở rộng quy mô và quản lý các ứng dụng được đóng gói.

Từ khóa » Tự Học ảo Hóa Vmware