Mục lục
- I. Tạo máy ảo
- 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
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
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.
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
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.
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ủ đó.
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.
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.
Pingback: Những tính năng của vSphere+ | Tam Tran