Hardware & Network
Server: Dell T3640, i7-10700, 64G , 1T NVME, nvidia Tesla P4-8G
Network: Sử dụng DHCP.
Cài đặt Proxmox 7.1
Tải ISO Proxmox.
https://www.proxmox.com/en/downloads
Khởi động từ USB hoặc CD/DVD
Sử dụng rufus tạo một USB khởi động.
http://rufus.ie/
Cấu hình qua GUI
https://<Proxmox_ipaddr>:8006
Cài đặt nvidia vGPU driver trên Proxmox
Cài đặt PVE-headers và dkms
echo 'deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription' | tee -a /etc/apt/sources.list
rm /etc/apt/sources.list.d/pve-enterprise.list
apt update && apt dist-upgrade -y
apt install pve-headers dkms -y
Bật IOMMU
# /etc/default/grub , GRUB_CMDLINE_LINUX_DEFAULT,add intel_iommu=on iommu=pt
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"/g' /etc/default/grub
update-grub
# Loading vfio vfio_iommu_type1 vfio_pci vfio_virqfd four Modules
echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u
reboot
Kiểm tra IOMMU đã được bật chưa.
root@pveserver:~# dmesg | grep -e DMAR -e IOMMU
[ 0.000000] ACPI: DMAR 0x0000000079A48648 0000A8 (v01 INTEL EDK2 00000002 01000013)
[ 0.000000] DMAR: IOMMU enabled
[ 0.004000] DMAR: Host address width 39
[ 0.004000] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[ 0.004000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[ 0.004000] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[ 0.004000] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
Cài đặt nvidia vGPU Drivers
#download nvidia drivers
wget https://dl.deskpool.com/NVIDIA-Linux-x86_64-470.82-vgpu-kvm.run
chmod +x NVIDIA-Linux-x86_64-470.82-vgpu-kvm.run
#install nvidia vgpu driver for kvm hypervisor
./NVIDIA-Linux-x86_64-470.82-vgpu-kvm.run -dkms
Khởi động lại PVE Server
systemctl daemon-reload
reboot
Kiểm tra P4 có hoạt động không
root@pveserver:~# cat /var/log/syslog |grep P4
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x47: GRID P4-1B Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x3f: GRID P4-1Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x40: GRID P4-2Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x41: GRID P4-4Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x42: GRID P4-8Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x43: GRID P4-1A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x44: GRID P4-2A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x45: GRID P4-4A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x46: GRID P4-8A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x9d: GRID P4-2B Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0xd6: GRID P4-2B4 Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0xf3: GRID P4-1B4 Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x121: GRID P4-8C Class: Compute
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x120: GRID P4-4C Class: Compute
Cài đặt Deskpool trên Proxmox
Bạn có 2 tuỳ chọn cài đặt.
Tuỳ chọn 1: Cài đặt bằng script.
Đăng nhập vào shell Linux Proxmox và chạy lệnh dưới đây.
cd /var/lib/vz/dump; wget -qO- http://dl.deskpool.com/dpinstall.pl | perl
Khi chạy xong script này màn hình sẽ hiển thị “Access deskpool by http://xxxxxx”. Bạn hãy mở URL bằng trình duyệt, tài khoản mặc định là admin/deskpool.
Tuỳ chọn 2: Tải xuống và cài đặt
Bước 1: Bạn hãy tải xuống Deskpool cho Proxmox từ url
http://www.deskpool.com/downloads/deskpool-pve/
Bước 2: Copy file này lên thư mục của máy chủ Proxmox: /var/lib/vz/dump
scp vzdump-qemu-500-2022_06_22-16_50_52.vma.zst root@<Proxmox_ipaddr>:/var/lib/vz/dump/
Bước 3: Khôi phục máy ảo Deskpool Manager VM.
Để khôi phục lại Deskpool Manager VM, bạn có thể làm theo các bước sau:
- Đầu tiên, bạn cần tạo một máy ảo mới để thay thế cho máy ảo cũ bị hỏng. Nếu bạn đang sử dụng hệ thống ảo hóa như VMware hoặc Hyper-V, bạn có thể sao chép một bản sao của máy ảo Deskpool Manager từ một máy chủ hoặc từ một bản sao lưu trước đó.
- Sau đó, bạn cần cài đặt lại các phần mềm và ứng dụng liên quan đến Deskpool Manager. Các bước này sẽ khác nhau tùy thuộc vào hệ điều hành và các phần mềm cụ thể mà bạn đang sử dụng.
- Tiếp theo, bạn cần khôi phục lại cơ sở dữ liệu của Deskpool Manager. Nếu bạn đã tạo sao lưu định kỳ của cơ sở dữ liệu, bạn có thể khôi phục lại từ đó. Nếu không, bạn có thể cần phải khôi phục lại cơ sở dữ liệu bằng tay từ một bản sao lưu ngoài hoặc một phiên bản của cơ sở dữ liệu trên máy chủ khác.
- Cuối cùng, bạn cần thiết lập lại các cấu hình và thiết lập mạng để đảm bảo rằng Deskpool Manager hoạt động đúng như mong muốn.
Bước 4:Khởi động máy ảo Deskpool Manager VM.
Bước 5: Sử dụng trình duyệt để truy cập vào URL của Deskpool manager.
Thiết lập ban đầu của Deskpool.
Tài khoản đăng nhập quản trị mặc định là username admin , password deskpool.
Bước 1: Cấu hình Deskpool Hypervisor, Resource , Database, Cluster.
Bấm vào [start].
Bấm vào [continue].
Ta cần chọn “Proxmox” và nhập địa chỉ IP của máy chủ Proxmox, tên người dùng (root) và mật khẩu tương ứng. Sau khi nhập đầy đủ thông tin, ta nhấn “Next” để tiếp tục cấu hình Resource Pool.
Cấu hình Resource Pool: desktop, chọn lựa kho lưu trữ 【local-lvm】. Resource Pool mạng được cấu hình bằng mạng ảo của Proxmox. Như hình sau đây với【vmbr0】, khi cấu hình hoàn tất, nhấn Next để đi đến cấu hình Cluster.
- Resource Pool là một tập hợp các tài nguyên ảo (như CPU, RAM, ổ cứng, card mạng,..) được cung cấp bởi Proxmox để tạo ra các máy ảo.
- Khi cấu hình Resource Pool cho Desktop, người dùng sẽ chọn một kho lưu trữ để lưu trữ các máy ảo trên đó. Ở đây, kho lưu trữ được chọn là “local-lvm”.
- Resource Pool mạng được sử dụng để cấu hình mạng ảo cho các máy ảo được tạo. Ở đây, mạng ảo được cấu hình với mạng ảo của Proxmox và được gán tên là “vmbr0”.
- Sau khi hoàn tất cấu hình, nhấn Next để chuyển đến cấu hình Cluster. Cluster là một nhóm các máy chủ được quản lý bởi Proxmox, cho phép quản lý các tài nguyên máy chủ và máy ảo trên nhiều máy chủ.
Bước tiếp theo trong quá trình cấu hình là tạo cụm (cluster) cho hệ thống. Khi tạo mới cụm, bạn cần chọn tùy chọn “create a new DoraCloud cluster”. Sau đó, bạn sẽ tiếp tục cấu hình cơ sở dữ liệu người dùng cho cụm này bằng cách chọn “next”.
Một cụm là một nhóm các máy chủ hoạt động chung để tạo nên một hệ thống ảo hóa. Trong quá trình tạo cụm, bạn có thể chọn đặt tên cho cụm và thêm các máy chủ vào cụm để chúng có thể làm việc với nhau. Sau đó, bạn có thể cấu hình các tài nguyên cụm, bao gồm CPU, bộ nhớ và lưu trữ, để sử dụng cho các máy ảo trên cụm.
Tiếp theo, sau khi đã tạo cụm, bạn cần cấu hình cơ sở dữ liệu người dùng cho hệ thống. Khi chọn tùy chọn “configure user database”, bạn sẽ được yêu cầu chọn loại cơ sở dữ liệu người dùng để sử dụng. Trong trường hợp này, bạn nên chọn “local user database” để sử dụng cơ sở dữ liệu người dùng được lưu trữ trên máy chủ của hệ thống. Sau khi đã chọn, bạn có thể chọn “next” để tiếp tục cấu hình.
Cơ sở dữ liệu người dùng là nơi lưu trữ thông tin người dùng và các quyền truy cập của họ trên hệ thống. Với cơ sở dữ liệu người dùng local, thông tin này được lưu trữ trên máy chủ của hệ thống, không được chia sẻ trên mạng. Khi đã cấu hình xong cơ sở dữ liệu người dùng, bạn có thể tạo ra các tài khoản người dùng và phân quyền cho họ để có thể sử dụng và quản lý các máy ảo trên hệ thống.
Bước này yêu cầu cấu hình địa chỉ IP cố định cho Proxmox. Khi chọn “yes”, người dùng cần cung cấp một địa chỉ IP tĩnh để đảm bảo rằng Proxmox luôn có cùng địa chỉ IP khi khởi động lại. Sau đó, người dùng có thể nhấn Finish để hoàn tất cấu hình và tiếp tục sử dụng Proxmox. Tuy nhiên, nếu chọn “no” thì Proxmox sẽ sử dụng địa chỉ IP động và sẽ được cấp phát một địa chỉ IP mỗi khi khởi động lại.
Dowload template
Trong bước này, bạn sẽ tải template từ Deskpool image repository.
Tắt bảng Deskpool setup wizard.
Và bấm vào menu [Templates].
Chuyển qua Remote Repository Tab và click [Refresh], sau đó [downloads] template có tên win7x64baseEn (win7x64baseEn là 1 ví dụ, bạn có thể sử dụng một template khác).
Nếu danh sách mẫu (template) trống, hãy kiểm tra kết nối internet của Deskpool VM và Proxmox. Cả Deskpool Linux VM và Proxmox đều phải có quyền truy cập internet.
Điều này có nghĩa là Deskpool Linux VM và Proxmox cần phải được kết nối với mạng internet để có thể tải về các mẫu (template) từ kho lưu trữ của Deskpool. Bạn nên kiểm tra kết nối internet trên cả hai máy và đảm bảo rằng chúng có thể truy cập được internet. Nếu vấn đề vẫn tiếp diễn, bạn cần kiểm tra các cài đặt mạng của Deskpool VM và Proxmox để đảm bảo rằng chúng đang sử dụng địa chỉ IP và mạng đúng.
Để tải xuống mẫu win7x64base, trước hết, người dùng cần truy cập vào menu “Templates” trong Deskpool và chọn win7x64base từ danh sách mẫu có sẵn. Sau đó, người dùng cần tải xuống mẫu này bằng cách nhấp vào nút “Download” và đợi cho quá trình tải xuống hoàn tất.
Sau khi tải xuống hoàn tất, người dùng cần khôi phục mẫu để sử dụng trong Deskpool. Để khôi phục, người dùng cần nhấp chuột phải vào mẫu và chọn “Recover Template” từ menu. Quá trình khôi phục có thể mất một thời gian tùy thuộc vào kích thước của mẫu và tốc độ của hệ thống. Khi quá trình khôi phục hoàn tất, mẫu sẵn sàng để sử dụng trong Deskpool.
Cấu hình Pools, User Account
– Cấu hình Desktop pools, User Account, User Group.
Nhấp vào Pools › Pools.
Ở bước “Basic information”, bạn sẽ nhập tên cho Desktop Pool (tức là một nhóm các máy ảo được quản lý và phân bổ tài nguyên cho các người dùng sử dụng) và lựa chọn các mẫu máy ảo (templates) và tài nguyên mạng (network resources) cho Desktop Pool đó. Bạn cũng có thể nhập tiền tố và hậu tố cho các máy ảo, giúp phân biệt các máy ảo trong Desktop Pool. Sau khi hoàn tất, bạn chuyển sang cấu hình chính sách cho Desktop Pool.
Trong bước này, người dùng sẽ tiến hành cấu hình chính sách của desktop pool, bao gồm các thông số sau:
- Maximum number of desktop virtual machines: đây là số lượng tối đa các máy ảo desktop có thể được tạo ra trong desktop pool.
- Pre-create desktop virtual machine parameters: đây là thông số của máy ảo desktop được tạo trước. Khi người dùng yêu cầu một máy ảo, Deskpool sẽ sử dụng các thông số này để tạo ra máy ảo một cách nhanh chóng.
- Desktop type: đây là loại desktop mà người dùng muốn tạo ra, ví dụ như Windows 7 hoặc Windows 10.
Sau khi cấu hình các thông số trên, người dùng sẽ tiếp tục sang bước tiếp theo để cấu hình lưu trữ cho desktop pool.
“Configure storage” là bước thiết lập về lưu trữ cho máy ảo trong desktop pool. Trong bước này, người dùng sẽ có thể thiết lập cho việc sử dụng ổ đĩa dữ liệu riêng của từng người dùng trong desktop pool.
Đầu tiên, người dùng cần thiết lập xem liệu có sử dụng ổ đĩa dữ liệu riêng cho người dùng hay không. Sau đó, họ sẽ thiết lập tên và dung lượng cho ổ đĩa dữ liệu đó. Nếu muốn sử dụng ổ đĩa dữ liệu cho desktop pool, người dùng cần chọn dung lượng và đặt tên cho ổ đĩa dữ liệu đó. Người dùng cũng cần chú ý rằng, lưu trữ của ổ đĩa dữ liệu được chỉ định trong giai đoạn khởi tạo hệ thống.
Sau khi cấu hình desktop pool, để tiếp tục quá trình triển khai và quản lý, người dùng cần phải thêm người dùng vào nhóm để được cấp quyền truy cập vào desktop pool. Để thêm người dùng vào nhóm, người dùng cần click vào menu [user] trên giao diện Deskpool, sau đó chọn [group]. Khi đó, một danh sách các nhóm hiện ra và người dùng có thể chọn một nhóm hoặc tạo một nhóm mới để thêm người dùng vào. Sau khi thêm thành công, người dùng sẽ có quyền truy cập và sử dụng các desktop virtual machine thuộc desktop pool.
Khi click vào “Add”, người dùng sẽ được yêu cầu điền tên nhóm và chọn desktop pool (hoặc nhiều desktop pool) cho nhóm đó. Sau khi đã chọn xong, nhóm người dùng này sẽ được cấp quyền truy cập vào các desktop pool mà họ được chọn.
Batch creation of users là chức năng cho phép tạo nhiều tài khoản người dùng cùng lúc. Bằng cách sử dụng tính năng này, người quản trị viên có thể tạo nhiều tài khoản người dùng nhanh chóng và tiết kiệm thời gian thay vì phải tạo từng tài khoản một.
Để tạo nhiều tài khoản người dùng cùng lúc, người quản trị viên cần chuẩn bị một danh sách các tài khoản người dùng cần tạo, với thông tin như tên đăng nhập, mật khẩu và các thông tin cá nhân khác. Sau đó, trong giao diện quản trị Deskpool, người quản trị viên chọn chức năng tạo người dùng và nhập danh sách các tài khoản người dùng cần tạo. Deskpool sẽ tự động tạo các tài khoản người dùng theo danh sách và thông tin được cung cấp.
Kết nối tới Desktops VDI.
Bạn hãy đợi cho Desktops vm tạo xong, bạn hãy kết nối tới Desktops VDI.
Cách 1: Sau khi đã tạo thành công desktop pool và các desktop virtual machines, bạn có thể kết nối và sử dụng các desktop này. Có hai cách để kết nối đến desktop virtual machines: sử dụng old doraos hoặc sử dụng Doracloud jc10 cloud terminal. Sau đây là hướng dẫn sử dụng Doracloud thin client để kết nối đến desktop:
- Đầu tiên, bạn cần tải và cài đặt Doracloud thin client trên máy tính của mình. Sau khi cài đặt xong, hãy kết nối thiết bị của bạn với mạng.
- Mở Doracloud thin client và vào trang cài đặt. Nhấn vào nút “add deskpool connection” đầu tiên để thêm kết nối đến desktop pool.
Bạn cần nhập địa chỉ server và tên kết nối. Chú ý rằng địa chỉ IP cần nhập là địa chỉ của hệ thống quản lý Doracloud, chứ không phải địa chỉ IP của máy chủ Windows Server.
Phần “username” và “password” trong Add Deskpool Connection là tên đăng nhập và mật khẩu để truy cập vào Deskpool connection. Nếu bạn đã tạo một desktop pool và tạo người dùng cho nó, bạn sẽ sử dụng tên đăng nhập và mật khẩu của người dùng đó để đăng nhập vào desktop pool của mình.
Sau khi đã thiết lập kết nối Deskpool thành công, người dùng có thể nhấn vào nút “Connect” nằm trong phần khung màu đỏ để truy cập vào hệ thống Doracloud.
Khi nhấn vào “Connect”, Doracloud sẽ mở ra và người dùng có thể đăng nhập vào hệ thống bằng tên đăng nhập và mật khẩu tương ứng đã được cấu hình trước đó để sử dụng các desktop ảo trong desktop pool đã tạo.
Cách 2: Login bằng trình duyệt web.
Nếu bạn đăng nhập thông qua trình duyệt web, bạn sẽ bị giới hạn trong việc sử dụng USB. Tuy nhiên, bạn có thể sử dụng đăng nhập qua trang web để kiểm tra các thông tin cơ bản như máy ảo đã tạo có thể đăng nhập bình thường hay không và kiểm tra một số chức năng của máy ảo. Để đăng nhập vào máy ảo qua trình duyệt web, bạn chỉ cần truy cập vào đường link được cung cấp và nhập tên đăng nhập và mật khẩu của người dùng được tạo trước đó để kết nối đến máy ảo. Tuy nhiên, hạn chế sử dụng USB có thể khiến cho việc truyền tải dữ liệu giữa máy tính cá nhân và máy ảo trở nên khó khăn.
Trong hình minh họa dưới đây, chúng ta đang đăng nhập vào giao diện quản lý Deskpool, sau đó bấm vào góc trên bên phải của màn hình để thoát khỏi giao diện quản lý. Việc thoát khỏi giao diện quản lý sẽ đưa chúng ta trở lại màn hình chính của hệ thống và cho phép chúng ta tiếp tục thao tác với các ứng dụng khác trong hệ thống.
Để đăng nhập vào giao diện quản lý Deskpool, trước tiên bạn cần truy cập vào địa chỉ IP của Doracloud Management System trên trình duyệt web. Sau đó, nhập tên đăng nhập và mật khẩu của người dùng được tạo trước đó trong giao diện đăng nhập. Trong trường hợp này, tên đăng nhập là “user01” và mật khẩu là “123456”. Sau khi nhập thông tin đăng nhập, bạn click vào nút “Login” để đăng nhập vào giao diện quản lý Deskpool.
Sau khi đăng nhập thành công vào giao diện quản lý desktop pool, một file RDP sẽ được tự động tải xuống. Nhấp vào file RDP trong hình để kết nối tới desktop người dùng.
Sau khi kết nối, nhập tên người dùng: administrator và mật khẩu: 123456. Nhấp vào nút đăng nhập để vào desktop đám mây.
Nếu desktop pool sử dụng giao thức spice, bạn cần phải cài đặt trình xem virt trên máy tính và đăng nhập thông qua trình duyệt web.
Giao thức Spice là một giao thức để kết nối với các máy ảo (virtual machines) và truyền tải các dữ liệu hiển thị (display data) và âm thanh (audio) giữa máy ảo và máy tính đang sử dụng. Tuy nhiên, để kết nối với desktop sử dụng giao thức Spice, bạn cần cài đặt trình xem virt trên máy tính của mình, vì RDP không hỗ trợ Spice. Sau khi cài đặt, bạn có thể đăng nhập vào desktop sử dụng Spice thông qua trình duyệt web.
Virt-viewer là một công cụ để hiển thị và quản lý các máy ảo dựa trên giao thức SPICE và VNC. Tuy nhiên, virt-viewer chỉ có sẵn trên các hệ điều hành Linux và Windows, không có phiên bản chính thức dành cho MacOS.
Tuy nhiên, người dùng MacOS có thể sử dụng các công cụ khác để kết nối và quản lý máy ảo trên môi trường SPICE hoặc VNC. Ví dụ, các công cụ như Remmina hoặc Vinagre có thể được sử dụng để kết nối tới các máy ảo trên một hệ thống sử dụng giao thức SPICE. Ngoài ra, người dùng MacOS có thể sử dụng một số ứng dụng khác như Microsoft Remote Desktop hoặc TeamViewer để kết nối đến các máy ảo đang chạy trên các hệ điều hành khác.
Deskpool VDI with vGPU
Ở bước Download Image from Remote Repository chọn win21h1gpu.
Ở bước Pool cấu hình Pool, Chọn loại GPU và vGPU.
Tham khảo: https://www.youtube.com/embed/GZ1gXotlEGI