= Xen GPU Cluster Practice = == 實作三: 在虛擬機器上獲得 GPU 硬體加速 - 使用VMGL == == 步驟一: 在 Dom0 上安裝 VMGL == '''# 安裝環境所需套件.''' [[BR]] rider@cloud:~/vmgl$ sudo apt-get install build-essential mesa-common-dev libglu1-mesa-dev mesa-utils libxmu-headers libxmu6 libxmu-dev zlib1g-dev libjpeg62 libjpeg62-dev xutils-dev libxaw-headers libxaw7 libxaw7-dev libxext6 libxext-dev rxvt lwm xauth xvfb xfonts-100dpi xfonts-75dpi culmus xfonts-scalable xfonts-base [[BR]] '''# 下載VMGL.''' [[BR]] rider@cloud:~/vmgl$ wget http://www.cs.toronto.edu/~andreslc/software/vmgl-0.1.tar.bz2 [[BR]] rider@cloud:~/vmgl$ tar jxvf vmgl-0.1.tar.bz2 [[BR]] rider@cloud:~/vmgl$ cd ./vmgl.hg/tightvnc/ [[BR]] '''# Patch for AMD64_Machine.''' [[BR]] rider@cloud:~/vmgl/vmgl.hg/tightvnc$ patch -p0 < ../../tightvnc-1.2.9-amd64support.patch [[BR]] rider@cloud:~/vmgl$ cd .. [[BR]] '''# 設定編譯器路徑.''' [[BR]] rider@cloud:~/vmgl$ sudo ln -sf /usr/bin/make /usr/bin/gmake (if necessary) [[BR]] '''# 編譯.''' [[BR]] rider@cloud:~/vmgl/vmgl.hg$ make -j 4 [[BR]] '''# 安裝於 Dom0(host) 端上.''' [[BR]] rider@cloud:~/vmgl/vmgl.hg$ sudo make install-host [[BR]] '''# 設定主機信任清單.''' [[BR]] rider@cloud:~$ xauth [[BR]] {{{ # Set the authority for remote guest. Using authority file /home/rider/.Xauthority xauth> add guest/unix:10 MIT-MAGIC-COOKIE-1 ec0ffd387888b9749d55f88031505888 xauth> add guest/unix:1 MIT-MAGIC-COOKIE-1 6824789b4ce0ac5743aeb57fd3ef8f5b xauth> exit }}} == 步驟二: 建構一台 VMGL Guest VM == '''# 設定你想要怎樣規格的虛擬機器.''' rider@cloud:~$ sudo vim /etc/xen-tools/xen-tools.conf [[BR]] {{{ dir = /home install-method = debootstrap size = 8Gb # Disk image size. memory = 1024Mb # Memory size swap = 128Mb # Swap size fs = ext3 # use the EXT3 filesystem for the disk image. dist = hardy # Default distribution to install. ---> For CUDA Support (Ubuntu 8.0.4) image = sparse # Specify sparse vs. full disk images. gateway = 140.XXX.XXX.XXX netmask = 255.255.255.0 broadcast = 140.XXX.XXX.XXX kernel = /boot/vmlinuz-`uname -r` initrd = /boot/initrd.img-`uname -r` mirror = http://gb.archive.ubuntu.com/ubuntu/ ext3_options = noatime,nodiratime,errors=remount-ro ext2_options = noatime,nodiratime,errors=remount-ro xfs_options = defaults reiser_options = defaults }}} rider@cloud:~$ sudo xen-create-image --hostname guest --ip 140.XXX.XXX.XXX [[BR]] == 步驟三: 設定虛擬機器(Guest) == rider@cloud:~$ sudo vim /etc/xen/nvidia.cfg [[BR]] {{{ kernel = '/boot/vmlinuz-2.6.22.9' ramdisk = '/boot/initrd.img-2.6.22.9' memory = '1024' vcpus = '4' # 不需配置 PCIE 顯示卡 # pci = ['01:00.0'] root = '/dev/sda2 ro' disk = [ 'file:/home/domains/nvidia/disk.img,sda2,w', 'file:/home/domains/nvidia/swap.img,sda1,w', ] name = 'nvidia' # # Networking # vif = [ 'ip=140.xxx.xxx.xxx,mac=00:16:3E:AA:70:5C' ] # # Behaviour # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' }}} == 步驟四: 在 DomU(Guest) 上安裝 VMGL == '''# 啟動虛擬機器Guest並登入.''' [[BR]] '''# 方法一.''' [[BR]] rider@cloud:~$ sudo xm create -c guest.cfg [[BR]] '''# 方法二.''' [[BR]] @Dom0 rider@cloud:~$ sudo xm create guest.cfg [[BR]] @!UserSide rider@PC:~$ ssh 140.xxx.xxx.xxx [[BR]] '''# 安裝環境所需套件.''' [[BR]] rider@guest:~$ mkdir -p vmgl [[BR]] rider@guest:~$ cd ./vmgl [[BR]] rider@guest:~/vmgl$ sudo apt-get install build-essential mesa-common-dev libglu1-mesa-dev mesa-utils libxmu-headers libxmu6 libxmu-dev zlib1g-dev libjpeg62 libjpeg62-dev xutils-dev libxaw-headers libxaw7 libxaw7-dev libxext6 libxext-dev rxvt lwm xauth xvfb xfonts-100dpi xfonts-75dpi culmus xfonts-scalable xfonts-base [[BR]] '''# 基本桌面環境.''' [[BR]] {{{ # Desgin for lightweight basic windows support xfonts-base xfonts-100dpi xfonts-75dpi -> fonts support rxvt -> x-terminal-emulator for VNC lwm -> x-window-manager for VNC }}} '''# 下載VMGL.''' [[BR]] rider@guest:~/vmgl$ wget http://www.cs.toronto.edu/~andreslc/software/vmgl-0.1.tar.bz2 [[BR]] rider@guest:~/vmgl$ tar jxvf vmgl-0.1.tar.bz2 [[BR]] rider@guest:~/vmgl$ cd ./vmgl.hg/tightvnc/ [[BR]] '''# Patch for AMD64_Machine.''' [[BR]] rider@guest:~/vmgl/vmgl.hg/tightvnc$ patch -p0 < ../../tightvnc-1.2.9-amd64support.patch [[BR]] rider@guest:~/vmgl$ cd .. [[BR]] '''# 設定編譯器路徑.''' [[BR]] rider@guest:~/vmgl$ sudo ln -sf /usr/bin/make /usr/bin/gmake (if necessary) [[BR]] '''# 建立安裝所需基本目錄.''' [[BR]] rider@guest:~/vmgl/vmgl.hg$ sudo mkdir -p /usr/lib/xorg (if necessary) [[BR]] rider@guest:~/vmgl/vmgl.hg$ sudo mkdir -p /usr/lib/xorg/modules (if necessary) [[BR]] rider@guest:~/vmgl/vmgl.hg$ sudo mkdir -p /usr/lib/xorg/modules/extensions (if necessary) [[BR]] '''# 編譯.''' [[BR]] rider@guest:~/vmgl/vmgl.hg$ make [[BR]] '''# 安裝於 DomU(guest) 端上.''' [[BR]] rider@guest:~/vmgl/vmgl.hg$ sudo make install-guest [[BR]] '''# 修正 rgb PATH 問題.''' [[BR]] {{{ ## Fix the rgb_Path problem. rider@guest:~/vmgl/vmgl.hg$ sudo mkdir -p /usr/X11R6/lib rider@guest:~/vmgl/vmgl.hg$ sudo mkdir /usr/X11R6/lib/X11 rider@guest:~/vmgl/vmgl.hg$ sudo ln -sf /etc/X11/rgb.txt /usr/X11R6/lib/X11/rgb }}}