Trang chủ Thủ Thuật Thi đua, ảo hóa và Docker: Sự khác biệt là gì?

Thi đua, ảo hóa và Docker: Sự khác biệt là gì?

0
11

Thi đua, ảo hóa và Docker: Sự khác biệt là gì?

d0807106 1
Shutterstock/kkssr

Cả mô hình hóa và ảo hóa đều đạt được cùng một mục tiêu – chạy một hệ điều hành khác bên trong một máy ảo. Tuy nhiên, mỗi người làm điều này khác nhau, và khi nó có thể được sử dụng, ảo hóa nhanh hơn nhiều. Và Làm thế nào để Docker phù hợp với tất cả những điều này?

Vấn đề hiệu suất

Câu trả lời ngắn gọn là mô phỏng chậm hơn nhiều so với ảo hóa, và tất cả đều phụ thuộc vào tối ưu hóa phần cứng.

Thi đua là hình thức cơ bản nhất để chạy một ứng dụng trên máy chủ ngoài ý muốn. Một trình giả lập lấy các lệnh dành cho hệ thống mục tiêu và dịch chúng thành thứ mà máy tính chủ có thể hiểu và chạy. Thông thường điều này liên quan đến việc mô phỏng các opcode CPU và đăng ký. Một ví dụ điển hình về điều này là mô phỏng các trò chơi cũ, như Nintendo N64, trên một máy tính hiện đại. PC không thể chạy các trò chơi N64 trực tiếp, nhưng trình giả lập có thể lấy các hướng dẫn dành cho N64 và chạy chúng càng gần với sự hoàn hảo càng tốt.

Why Are Video Game Emulators So Important?

LIÊN QUAN Tại sao trình giả lập trò chơi điện tử lại quan trọng như vậy?

Mặc dù “Thi đua” thường được sử dụng để chỉ mô phỏng trò chơi điện tử, nhưng nó được sử dụng thường xuyên cho các ứng dụng kinh doanh. Ví dụ: có thể bạn có một phần mềm kế thừa quan trọng, phải chạy trên một hệ thống như DOS. Chạy nó trong một trình giả lập trên một máy chủ mới thường có thể dễ dàng hơn so với chạy nó trên máy từ thời điểm đó. Nó cũng có thể đề cập đến một phần mềm mô phỏng các tác động của phần cứng cũ, chẳng hạn như mô phỏng các bộ điều khiển mạng cũ.

Tuy nhiên, thi đua có thể chậm một cách không cần thiết. Một trường hợp sử dụng cực kỳ phổ biến là chạy nhiều máy ảo Linux trên một hệ điều hành máy chủ. Khi máy chủ giống như máy ảo, việc mô phỏng đầy đủ toàn bộ CPU rất chậm so với việc chỉ chạy bình thường.

Quảng cáo

Vì vậy, thay vào đó, hầu hết các máy ảo sẽ sử dụng công nghệ ảo hóa tối ưu hóa phần cứng. Trên Intel, công nghệ này được gọi là Intel-VT, và trên AMD, nó được gọi là AMD-V. Cả hai đều hoàn thành cùng một mục tiêu ảo hóa các ứng dụng x86. Nếu bạn đang chạy máy tính để bàn, bạn có thể phải bật chúng trong BIOS nếu chúng không được bật theo mặc định.

Ảo hóa thường được sử dụng kết hợp với Hypervisor, đó là một hệ điều hành barebones xử lý nhiều máy chủ riêng ảo. Nếu bạn đang thuê VPS từ một công ty điện toán đám mây như AWS, nó có thể chạy trên một hypervisor như Nitro, Proxmox hoặc Hyper-V của AWS. Hypervisors hiện đại có thể đạt được hiệu suất rất gần với bản địa (còn được gọi là “kim loại trần”). Mặc dù luôn có một chút chi phí, nhưng tốt hơn là phải mô phỏng nó.

09e08ec3

Ảo hóa hầu như luôn hoạt động tốt nhất nếu bạn đang ảo hóa cùng một kiến trúc. Ví dụ, CPU x86 từ AMD và Intel sẽ có thể ảo hóa các hệ điều hành x86 như Windows và Linux tiêu chuẩn. Mặc dù về mặt kỹ thuật, CPU ARM không thể ảo hóa CPU x86, nhưng nói chung nó không phải là một thứ.

Đây có thể là một vấn đề, giống như trong trường hợp Macbook dựa trên ARM mới của Apple chạy trên bộ xử lý M1 của riêng họ. Ảo hóa hệ điều hành x86 không được hỗ trợ. Mặc dù bạn vẫn có thể chạy các OSes khác với các chương trình như Parallels, nhưng nó sẽ chậm hơn rất nhiều vì nó sẽ phải dùng đến mô phỏng.

Vì vậy, để kết luận, nếu bạn sẽ chạy một chương trình từ một hệ điều hành khác, bạn sẽ muốn đảm bảo rằng bạn đang làm như vậy bằng cách sử dụng một số loại ảo hóa nếu bạn muốn đạt được bất cứ nơi nào gần 100% tốc độ gốc.

Docker cho người mới bắt đầu: Mọi thứ bạn cần biết

Docker so sánh như thế nào?

c454d054

Docker cho phép chạy các ứng dụng trong các container, là các gói riêng biệt có chứa tất cả các mã cần thiết cho một ứng dụng để chạy. Nó cũng rất an toàn; Một máy chủ có thể chạy nhiều thùng chứa Docker mà không sợ chúng thoát ra khỏi thùng chứa hoặc gây rối với nhau.

What Are Linux Namespaces and What Are They Used for?

LIÊN QUAN Không gian tên Linux là gì và chúng được sử dụng để làm gì?

Theo nhiều cách, Docker đạt được cùng một mục tiêu chính xác là chạy nhiều ứng dụng trong các máy ảo Linux riêng tư, nhưng dưới mui xe, nó làm mọi thứ hơi khác một chút.

Quảng cáo

Docker không sử dụng mô phỏng hoặc ảo hóa. Nó chạy tất cả các mã trực tiếp trên CPU và hệ thống máy chủ, với chi phí ảo hóa bằng không. Để cô lập các container, nó sử dụng thông minh các không gian tên Linux, trong số các tính năng khác có thể cô lập các quy trình trong “nhà tù container” của riêng họ. Các quy trình bên trong nhà tù không thể nhìn thấy hoặc tương tác với các tệp, quy trình hoặc tài nguyên hệ thống không được gán cho chúng.

Điều này đạt được một hệ thống trong đó nhiều ứng dụng có thể chạy cùng nhau trên một hệ điều hành máy chủ mà không cần chi phí của một hệ điều hành riêng biệt cho mỗi máy chủ riêng ảo. Đối với một nhà cung cấp như AWS, điều này tiết kiệm rất nhiều tiền.

993634a1

Nếu bạn đang xem xét ảo hóa, nhưng lo ngại về hiệu suất, Docker không có chi phí so với việc chạy các ứng dụng trên kim loại trần. Bạn có thể đọc hướng dẫn của chúng tôi để bắt đầu với nó để tìm hiểu thêm.

Làmthế nào để đóng gói cơ sở hạ tầng ứng dụng của bạn với Docker

How to Debug Kubernetes “ImagePullBackOff” Errors

Cách gỡ lỗi Kubernetes “ImagePullBackOff”

What’s New In Visual Studio 2022?

Visual Studio 2022 có gì mới?

How to Mount Your Microsoft OneDrive in Linux

Cách gắn Microsoft OneDrive của bạn trong Linux

What Is “Multi-Cloud” and Why Does It Matter?

“Đa đám mây” là gì và tại sao nó lại quan trọng?

How to Use GitLab’s New Helm Chart Repository

Cách sử dụng Kho lưu trữ biểu đồ Helm mới của GitLab

How to Store Large Files in Git

Cách lưu trữ các tệp lớn trong Git

Dịch từ: https://www.cloudsavvyit.com/7952/whats-the-difference-between-virtualization-and-emulation-why-it-matters/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây