跳到主要內容

單機建置多個虛擬環境﹝二﹞Not VMWare

接續上一次說的繼續往下做,快過年事情有點多,目前我已經確定使用OpenSuSe Linus 10.2來當作是我的基礎系統的作業系統,這裡要特別注意一下使用XEN的時候要特別看看hardware requirement,在有雙核心的機器上跑XEN的虛擬環境會有問題﹝這個我還要確認一下﹞,換一台單顆CPU的就可以跑起來了,也真是奇怪,這個問題用Fedora Zod跟OpenSuSe都會發生所以我個人認定為硬體問題,題外話之前都是在玩RedHat家的東西比較不常玩SuSe,這次裝了SuSe後發現它的圖形介面相當不錯,許多控制的功能都可以透過圖形操作,也包含了安裝及移除功能不錯用喔,回到正題我大概分三個階段來說明一下:

一、安裝作業系統﹝SuSe or Fedora﹞,記得在軟體清單中要把虛擬系統勾起來,預設都沒有喔,安裝步驟就不再詳述了喔。安裝完後先進入預設的環境,然後reboot再選XEN的環境看看能不能進入,可以的話恭喜你運氣不錯繼續往下。

二、確認一下虛擬環境的一些設定可以使用 "xm list",它會列出目前的虛擬環境,應該會看到只有一個喔,看看mem的部分是不是跟實體記憶體一樣多,是的話把它減少一下吧,不然不能裝其他的系統喔,可以使用"xm mem-set 虛擬環境代號 記憶體大小",接下來就要進行新增一個虛擬環境的設定檔了,可以使用XEN提供的example目錄下的檔案進行應該是在/etc/xen/example的設定檔進行,可以用xmexample1及xmexample2當做第一個範例,主要會調整到的幾行我說明一下

name="CentOs"
虛擬環境代號名稱

memory=128
設定所需的記憶體大小

disk=['phy:hda7,sda1,w']
這表示要把實體的hda7﹝這是實體的檔案路徑或是device﹞映射到虛擬的sda1﹝這個是虛擬環境起來後的切割區﹞並且可以寫入。
root="/dev/sda1 ro"
表示虛擬環境啟動後根目錄為/dev/sda1的位置

設定檔調整好了,然後把你要虛擬環境的作業系統看是要做成img或是iso都可以,你也可以直接到http://jailtime.org下載喔<---粉方便喔。

三、建立虛擬環境囉!可以使用"xm create 虛擬設定檔"。這裡我常常失敗要嘛就是設定檔出問題要嘛就是記憶體不夠,成功的話你會知道的,然後開另一個console去看看你的虛擬環境有沒有正常的工作喔可以使用"xm console 虛擬環境代號"這裡就使用了。

以下是我設定檔的內容,我是使用Centos.4-4
kernel = "/boot/vmlinuz-xen"
ramdisk = "/boot/initrd-xen"
memory = 128
name = "CentOs"
vif = [ '' ]
disk = [ 'file:/tmp/centos.4-4.img,sda1,w','file:/tmp/centos.swap,sda2,w' ]
root = "/dev/sda1 ro" <---若是你是使用Centos或是Fedora的話ro要加喔
extra = ""
我機器的配備滿低的,不過運作兩個Linux系統看起來還好,這個還要試試看。
P4-1.7GHz
256MB RAM
硬碟40GB

我也有嘗試window的虛擬環境,不過cpu要是dual core的Intel cpu並支援VT的功能,目前正在尋找機器中,也還有網路的部分待進行。那就待續囉!

參考網址
http://www.cl.cam.ac.uk/research/srg/netos/xen/
http://www.xuniji.com/xen/view.asp?id=21
http://www.xuniji.com/xen/view.asp?id=20
http://www.xuniji.com/xen/view.asp?id=19
http://www.xuniji.com/xen/view.asp?id=18
http://www.xuniji.com/xen/view.asp?id=17
http://thevault13.blogspot.com/2006/11/run-windows-xp-on-debian-etch-with-xen.html

留言

這個網誌中的熱門文章

Spring boot v1.5 (六) spring data jpa 基本操作

最近天氣好熱,做甚麼事都覺得很懶,想要寫個spring data jpa也是懶懶的,不過這部分卻也是滿重要的一部分,前一篇介紹 JDBCTemplate ,已經覺得跟以前寫SQL方式有所差異了,JPA帶來的是物件導向的設計面思考,說到JPA不得不提提 ORM ,Object-relational mapping主要想法為簡化及物件導向的設計,讓RDB更貼近Object,在設計上可以更加便利,甚至透過一些設計可以讓Table具有物件導向的特性如繼承等等,以往要使用ORM的框架,都會先以 Hibernate 進行,不過近來慢慢地轉向JPA,主要還是在減少程式碼、增加彈性等等,大體的功能沒有差異很大,所以從Hibernate轉到JPA問題不大,JPA要介紹的東西還滿多的,所以我這裡會再分成三個章節來介紹。 SPRING DATA JPA基本操作 JPQL & Named SQL & Native SQL Cache & DB Design Pattern SPRING DATA JPA更加簡化的程式撰寫,只需要一個 Interface內寫一些查詢 method就可以操作JPA,因為利用 method 組合查詢條件,確實很方便也很容易理解,若是都沒有辦法符合需求當然也可以自己實作一個來用當然沒有問題。 學習目的 :SPRING DATA JPA基本操作。 學習時數 :3.5hr 教學影片: pom.xml 說明 spring-boot-starter-web:配置 Web Project所需的函式庫。 spring-boot-starter-test:配置 unit or mock test 所需的函式庫。 spring-boot-starter-actuator:配置監控spring boot所需的函式庫,後續spring cloud會使用到,所以一開就導入。 spring-boot-starter-jdbc:配置使用jdbc所需的函式庫。 postgresql:配置postgresql連接Driver所需的函式庫。 jasypt-spring-boot-starter:加解密所需的函式庫。 spring-boot-starter-data-jpa:配置Spring data jpa所需的函式庫。 ...

IReport中的條碼類別BcImage

最近有一個繳費單的專案,需要列印條碼,因為IReport本身就有提供列印條碼的功能,所以就用IReport設計繳費單然後再用Jasperreport API寫批次程式去產生PDF,資料量大概3000多筆(頁)拆成幾個檔案,可是就發生了一個問題居然發生部分繳費單的條碼有問題,看了一下程式研判是Race Condition因為程式採用的是多執行緒,若是依序個別產生是不會有問題,但是同時執行的時候就會亂掉,而且都錯在條碼,令我覺得很奇怪,後來我查了一下發現it.businesslogic.ireport.barcode.BcImage 類別我猜是這裡的問題,就先加上synchronized重新編譯在去執行,嘿嘿條碼就對了,做了一下壓測也正常,程式碼如下,不過這樣事不是對了可能還要仔細查查看。 public class BcImage { private static net.sourceforge.barbecue.Barcode bc = null; public synchronized static net.sourceforge.barbecue.Barcode getBarcode() { return bc; } public synchronized static BufferedImage getBarcodeImage(int type, Object aText, boolean showText, boolean checkSum) { return getBarcodeImage(type, aText, showText, checkSum,"",0,0); } public synchronized static BufferedImage getBarcodeImage(int type, Object aText, boolean showText, boolean checkSum, String applicationIdentifier, int width, int height) { // 2of7, 3of9, Bookland, Codabar, Code128,...

Spring boot v1.5 (四) swagger,properties and structing your code

在 上一章 有稍微讓大家看一下swagger怎麼跟spring boot無縫接軌,本章就深入一點來介紹swagger,把它定位在 API似乎有點薄弱,當作工具(Tools)我覺得倒很個很好的解釋,它主要提供的工具分別為 swagger core、swagger codegen、swagger editor、swagger ui等,以下是各自的說明: swagger core:這是swagger的核心,使用Java撰寫出來的。 swagger codegen:可以依據swagger(yaml格式)產生出來的api json或是url,可產生客戶端(client)相對應的程式碼。 swagger editor:透過這個工具可以產生yaml,有點像是Eclipse IDE一樣,撰寫相對應的yaml,透過yaml可以產服務端(server)及客戶端(client)的程式碼,透過 這裡 可以玩玩看。 swagger ui:將這工具與你的程式結合,如上章的方式,程式啟動後就會自動生成 api 前端頁面提供使用。