Tuesday, 22 January 2013

Virtualization - công nghệ ảo hóa

TODO: 
  1. tut cài máy ảo bằng kvm 
  2. tut cài máy ảo bằng  virtualbox
Virtualization không phải là 1 khái niệm mới mẻ, nó đã tồn tại khá lâu, chiếm những vị trí rất quan trọng, thậm chí mang tính sống còn với nhiều doanh nghiệp :D

Virtualization là ảo hóa (trong bài này nói về việc cài đặt các máy ảo để sử dụng). Ở mức người dùng cá nhân, công nghệ này dường như không thực sự thu hút đối với người dùng. Bởi nếu cần có 2 hệ điều hành để chạy song song thì thường người ta sẽ cài luôn cả 2 hệ điều hành ấy để dual-boot. Trên linux cũng có các chương trình giả lập môi trường window để chạy các phần mềm window (wine).

Bài viết này sẽ chỉ ra vài trường hợp mà công nghệ ảo hóa trở nên rất tiện lợi, và quan trọng:
- Bạn muốn thử dùng Ubuntu cho quen rồi mới dám cài thật, máy ảo chính là giải pháp tuyệt vời nhất.
- Một sinh viên muốn trở thành 1 sysadmin, nhưng chỉ có 1 chiếc máy tính duy nhất. Giải pháp chính là ảo hóa, cài 2-3-4 cái máy ảo cùng chạy sẽ giúp công việc học tập nghiên cứu trở nên dễ dàng, trực quan hơn. Chuyện chạy 2-4 server linux trên 1 máy tính cũng không có gì là nặng nề cả (that why I love it )
- Một developer muốn thử nghiệm các môi trường khác nhau cho phần mềm của mình, dựng các máy ảo và việc thử nghiệm của anh ta sẽ nhanh chóng + dễ dàng hơn rất nhiều.
- Các doanh nghiệp sẽ dùng đến công nghệ ảo hóa để phân bổ tài nguyên phần cứng hợp lý. VD: thay vì chạy mỗi máy là server, họ có thể cài lên 3 máy ảo và chạy các dịch vụ khách nhau.
- Các công nghệ ảo hóa hỗ trợ các tính năng như: tạo clone 1 máy, "chụp" lại trạng thái tại 1 thời điểm nhất định của 1 máy. Ảo hóa cũng chính là nền tảng của công  nghệ cloud-computing IaaS, nó có thể cho phép cung cấp tài nguyên lúc cần thiết và thu hồi lúc không cần.

Các giải pháp ảo hóa phổ biến:
  • kvm (tớ đang dùng cái này): đi kèm với kernel từ phiên bản 2.6.20. Hỗ trợ nhiều công cụ quản lý như virsh (CLI) , virt-manager (desktop GUI)... http://www.linux-kvm.org/page/Management_Tools (linux only)
  • virtualbox: sản phẩm của oracle, tớ từng dùng trước khi chuyển sang KVM, rất ok, không có vấn đề gì (Windows,Linux)
  • vmware: vmware có lẽ là cái tên nổi tiếng nhất trong thế giới ảo hóa. (Windows, Linux)
Vài điều hay ho sẽ viết thêm về đề tài này:
Vagrant: tool giúp tự động cài đặt các máy ảo http://docs.vagrantup.com/v1/docs/getting-started/why.html (hiện tại chỉ hỗ trợ virtualbox)

Bài viết này sẽ được update thêm...

8 comments:

  1. cài ubuntu minimal cho máy ảo để dùng tối thiểu tài nguyên.

    Tóm tắt:
    Khi bắt đầu cài ubuntu, sau khi chọn language xong, bấm F4, chọn Install a minimal virtual machine
    Kết quả: sử dùng 1/2 đĩa cứng và 1/10 RAM so với cài bình thường.
    http://erratasec.blogspot.co.uk/2013/03/ubuntu-low-mem-install-for-vms.html

    ReplyDelete
  2. Ubuntu nào cũng thế hay Ubuntu Server

    ReplyDelete
    Replies
    1. trong bài tut là server
      còn desktop thì ... lâu lắm rồi không cài máy :D

      Delete
  3. KVM trên Linux, phiên bản tớ đang dùng là 1.0:
    root@lappy: ~ () # kvm --version
    QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard
    hỗ trợ các máy ảo linux ngon lành.
    Vừa thử nghiệm cài freebsd9 thì IO rất thấp, chạy gần 2 tiếng mầ không xong (trong khi cài freebsd9 trên máy thật mất có vài phút).
    Giải pháp tình thế nếu cài freebsd9 là dùng virtualbox
    Cài virtualbox thực hiện theo tut ở đây:
    https://www.virtualbox.org/wiki/Linux_Downloads

    ReplyDelete
    Replies
    1. Để cài freebsd8 trên KVM, dùng câu lệnh sau sẽ cho tốc độ chấp nhận được:
      virt-install -n bsd83 -r 678 --disk /var/lib/libvirt/bsd83.img,size=8 --cdrom /tmp/FreeBSD-8.3-RELEASE-amd64-disc1.iso --accelerate --os-type unix --os-variant freebsd8 -v
      (CÓ các option: --accelerate, --os-type unix , --os-variant freebsd8, -v)

      Delete
    2. đến thời điểm này có thể kết luận việc chạy máy ảo freebsd trên KVM gặp phải vấn đề rất tệ. IO rất kém (write <1MB/s)
      Test trên host Ubuntu 12.04 kvm 1.0
      có thể xem thêm ở đây:
      http://www.slideshare.net/TakeshiHasegawa1/runningfreebsdonlinuxkvm
      Giải pháp là dùng Virtualbox!

      Delete
  4. khi chạy 1 máy guest trên VirtuaBox mà bị lỗi này (xem ở syslog)

    General Protection Fault 0000 [1] SMP

    là do bạn đang dùng kvm.
    modprobe -r kvm
    modprobe -r intel_kvm

    là xong

    ReplyDelete
    Replies
    1. để chạy máy ảo 64 bits:
      - cần bật chế độ VT-x/ AMD-V trong BIOS lên.
      - Lúc tạo máy ảo mới phải chọn loại OS là 64bits
      - Với FreeBSD, phải chọn Settings -> System -> Đánh dấu vào IO APCI

      Delete