簡單整理一下Linux LVM的一些基本概念。
首先先複習一下使用一顆實體硬碟的流程~~~
當妳要加裝一顆硬碟時妳會怎麼做?打開電話簿翻到『好人&馱獸』那一區??
那妳後面應該都看不懂~~~~~
使用一顆實體硬碟的流程是....
1. 首先要有一顆硬碟。
2. 接著將這顆硬碟裝到電腦上。
3. 開Power。
4. 劃分分割區。
5. 格式化。
6. 掛載。
除開不關電源直接裝硬碟、連接線接錯或裝反、硬碟電源線沒裝或是買到籤王等意外,妳現在可以開始用硬碟了。
我的學生應該都要記得吧?!?!第一堂課的東西.....
雖然說的跟講義不大相同,不過意思是一樣的。
接著進入主題.............
1.『Partition』 是建置『Linux LVM』的基本成員,要參加『 LVM』 的『Parition』首先要變身為『PV(Physical Volume)』。
怎麼變身呢?
用『 fdisk』 跟他說「你是LVM」......就好了嗎?還早..........
喔.....前面的意思是所有要參加『LVM』的『Partitiom』都要一一使用『fdisk』指定其『Partition Type』為『8e』。
接著再用『pvcreate』跟那些『 Partition』 說「你是PV」....這樣就變身完畢了。
2.當所有參加『LVM』的成員都知道自己是『PV』後再使用『vgcreate』將他們群組成一個『VG(Volume Group)』。
這個時候基本上妳就可以把一個『VG』當成一顆大硬碟。
其實到這邊還蠻像是在生一個『Raid 0』的感覺,『Raid 0』是將一堆大小不同的實體硬碟合體成一個邏輯大硬碟的技術,所不同的是『Raid 0』只要有一個成員脫團,整個 『Raid 0』就GG 了,『LVM』的話,一個『PV』也就是『Partition』壞掉,換掉就好了。
到這邊是建置『Linux LVM』的前置作業。
3. 當『VG』合體完畢後你就有了一顆大硬碟,回到一開始提到的實體硬碟使用流程....
1. 首先要有一顆硬碟。
2. 接著將這顆硬碟裝到電腦上。
3. 開Power。
4. 劃分分割區。
5. 格式化。
6. 掛載。
當然,前三點就不需了,接下來就直接到『 4.劃分分割區』 這個動作。
接著就是使用『lvcreate』來''劃分''出 『LV(Logical Volume)』了。
從『VG』中切割出『LV』來用,這一步就像是在切『Partition』一樣。
現在妳可以將切出來的『LV』掛載到掛載點開始使用他了。
所以整個『LVM』的建置流程就是,『PV』→『VG』→『LV』。
LAB的部份....看哪天有空再說。
2011年9月18日 星期日
2011年9月16日 星期五
[JAVA]Install JDK 6.0 & JRE 6.0 on Ubuntu 11.04
雖然Ubuntu 11.04 已經有了『OpenJDK 6.0』,不過還是想換成『SUN』的『JDK』。
1. 打開『synaptic』,點選[設定] => [套件庫],點選「其他軟體」頁籤
將『Canonical 夥伴』及『Canonical 夥伴 (源碼)』勾選起來。
(※ 『Canonical 夥伴 (源碼)』可以不用勾,我是順便)
[關閉]之後記得『重新載入』一下
2.在『快速過濾』填入「sun-java-6」,然後選取『sun-java6-jre』、『sun-java6-jdk』、『sun-java6-plugin』
(※ 其他需不需要裝看個人嗜好)
3.可是系統中還有一個『Openjdk』怎麼辦?
使用切換程式切換過來,
切換前:
切換後:
4.設定環境變數
修改『/etc/environment』
修改前:
修改後:
重登入以後測試一下環境變數,
完工~~~~
1. 打開『synaptic』,點選[設定] => [套件庫],點選「其他軟體」頁籤
將『Canonical 夥伴』及『Canonical 夥伴 (源碼)』勾選起來。
(※ 『Canonical 夥伴 (源碼)』可以不用勾,我是順便)
[關閉]之後記得『重新載入』一下
2.在『快速過濾』填入「sun-java-6」,然後選取『sun-java6-jre』、『sun-java6-jdk』、『sun-java6-plugin』
(※ 其他需不需要裝看個人嗜好)
3.可是系統中還有一個『Openjdk』怎麼辦?
使用切換程式切換過來,
切換前:
$ java -version java version "1.6.0_22" OpenJDK Runtime Environment (IcedTea6 1.10.2) (6b22-1.10.2-0ubuntu1~11.04.1) OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) |
切換後:
$ sudo update-java-alternatives -s java-6-sun [sudo] password for max: max@minako:~$ java -version java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode) |
4.設定環境變數
修改『/etc/environment』
修改前:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" |
修改後:
JAVA_HOME="/usr/lib/jvm/java-6-sun" PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun/bin" CLASSPATH=".:/usr/lib/jvm/java-6-sun/lib:/usr/lib/jvm/java-6-sun/lib/dt.jar:/usr/lib/jvm/java-6-sun/lib/tools.jar" |
重登入以後測試一下環境變數,
$ echo $CLASSPATH .:/usr/lib/jvm/java-6-sun/lib:/usr/lib/jvm/java-6-sun/lib/dt.jar:/usr/lib/jvm/java-6-sun/lib/tools.jar max@minako:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun/bin max@minako:~$ echo $JAVA_HOME /usr/lib/jvm/java-6-sun |
完工~~~~
[XOOPS]換掉整個 Banner
預設的Banner我不是很喜歡所以想換掉......
先打開所使用的版型的『theme.html』,找到下面這一段程式碼,
當然前提是要看得懂 html 跟那些 XOOPS 變數的意義......
先打開所使用的版型的『theme.html』,找到下面這一段程式碼,
<!-- customized header contents --> <{$xoops_module_header}> </head> <body id="<{$xoops_dirname}>" class="<{$xoops_langcode}>"> <!-- Start Header --> <table cellspacing="0"> <tr id="header"> <td id="headerlogo"><a href="<{xoAppUrl /}>" title="<{$xoops_sitename}>"><img src="<{xoImgUrl xoops-logo.png}>" alt="<{$xoops_sitename}>" /></a></td> <td id="headerbanner"><{$xoops_banner}></td> </tr> <tr> <td id="headerbar" colspan="2"> </td> </tr> </table> <!-- End header --> |
接著就妳高興怎麼改就怎麼改啦~~~
當然前提是要看得懂 html 跟那些 XOOPS 變數的意義......
[XOOPS]特定使用者登入後才出現的物件
如果希望某個連結是在特定帳號登入後才出現,可以透過下列程式碼來達成這個效果,
特定帳號登入前:
特定帳號登入後:
<{if $xoops_uname == '特定帳號' }> <a href="<{xoAppUrl 想要出現的連結}>" style="text-decoration:none" target="_self"><font color="#3367FF">[ 連結顯示名稱 ]</font></a> <{/if}> |
特定帳號登入前:
特定帳號登入後:
[XOOPS] 使用者登入後才顯示歡迎詞
如果要在使用者登入後才顯示歡迎詞可以在 Theme 的『theme.html』中加上下列程式碼在要出現歡迎詞的地方。
登入前:
登入後:
<{if $xoops_uname }> 歡迎詞 !!! <{/if}> |
登入前:
登入後:
2011年9月14日 星期三
[KVM]使用『Virt-manager』管理KVM - 建立 VM
由於我是在 Ubuntu 11.04 Desktop 上安裝『Virt-manager』,Ubuntu 11.04所收錄的『Virt-manager』是 0.8.6,其他版本的『Virt-manager』在版面上或有不同但是設定的次序是大同小異。
我主要用過 0.8.2 及 0.8.6 兩個版本 的『Virt-manager』,在這邊主要以 0.8.6 來進行示範。
1. 啟動『Virt-manager』
我的 Ubuntu 11.04 Desktop 所使用的桌面環境是 LXDE,在畫面左下方的[選單]=>[系統工具]中看到虛擬機器管理員。
若是Gnome則是畫面左上角的[應用程式]=>[系統工具] 中可以看到。
下面是開啟『Virt-manager』的畫面,
2.新增連線
接著要連線到 KVM 所在的主機
a.單擊 [檔案] => [Add Connection]
會出現一個新增連線的設定視窗,
b. 將『Connect to remote host』勾選起來
c. 設定連線資訊
接著就填入連線所需的資訊,然後單擊 [連接( n )]。

如果是『Virt-manager』0.8.2 就只能用 root 連線到遠端主機。
d.啟動連線
雙擊剛剛建立的連線,連線成功會出現密碼輸入視窗。
登入完畢後會列出現有的VM清單。
3.設定 Storage Pool
這邊規劃將之後建立的VM image 檔 及 OS 的iso檔分開存放, VM image 檔放在『/media/SDA3/VmImage』, OS iso檔放在『/media/SDC7/001.LinuxISO』。
a. 以KVM管理帳號的身份透過 SSH 連到KVM主機
語法如下,
(1). 定義VM image 檔存放目錄
(2). 定義iso 檔存放目錄
(3). 列出 Stroage Pool
(4).啟動新增的Storage Pool 並設為自動啟動
4.建立VM
接著我們就使用『Virt-manager』來建立一台VM。
a.對著剛剛建立的連線單擊右鍵,點擊 [新增]
輸入 VM 的名稱及選擇安裝方式。
b.設定OS Type 及 Version
c. 選取 OS iso 檔
d.設定 RAM及CPU數量
設定值最大均不能超過Host所擁有的實體記憶體大小及CPU數量,若是多核心CPU 則不能超過總核心數。
e. 產生虛擬硬碟
因為要將VM存在『/media/SDC7/001.LinuxISO/』所以這邊另外選擇存放位置
f. 點選要存放的 Storage Pool 然後單擊[New Volume]
g. 新增儲存卷冊
預設的儲存卷冊名稱會與 VM 同名,副檔名會是『img』,因為這邊所選擇的儲存卷冊格式為『qcow 2』所以在副檔名前再加上『.qemu』以為標示。
記得要設定儲存卷冊容量的最大值,這邊是設定為約6Gb的大小。
點選剛剛新增的儲存卷冊
f. 設定網路卡
我們可以選擇使用『NAT』虛擬網路,若 Host有建立橋接網路卡也可以選擇『Specify shared device name』。
由於網路卡相關設定可以在VM建立之後再變更設定,所以這邊先選用『NAT』虛擬網路。
另外,Virt-type 選擇『kvm』,Architecture選擇『x86_64』。
單擊『完成』就產生一台VM,之後會直接進入OS安裝畫面。
我主要用過 0.8.2 及 0.8.6 兩個版本 的『Virt-manager』,在這邊主要以 0.8.6 來進行示範。
1. 啟動『Virt-manager』
我的 Ubuntu 11.04 Desktop 所使用的桌面環境是 LXDE,在畫面左下方的[選單]=>[系統工具]中看到虛擬機器管理員。
若是Gnome則是畫面左上角的[應用程式]=>[系統工具] 中可以看到。
下面是開啟『Virt-manager』的畫面,
2.新增連線
接著要連線到 KVM 所在的主機
a.單擊 [檔案] => [Add Connection]
會出現一個新增連線的設定視窗,
b. 將『Connect to remote host』勾選起來
c. 設定連線資訊
接著就填入連線所需的資訊,然後單擊 [連接( n )]。

如果是『Virt-manager』0.8.2 就只能用 root 連線到遠端主機。
d.啟動連線
雙擊剛剛建立的連線,連線成功會出現密碼輸入視窗。
登入完畢後會列出現有的VM清單。
3.設定 Storage Pool
這邊規劃將之後建立的VM image 檔 及 OS 的iso檔分開存放, VM image 檔放在『/media/SDA3/VmImage』, OS iso檔放在『/media/SDC7/001.LinuxISO』。
a. 以KVM管理帳號的身份透過 SSH 連到KVM主機
$ ssh max@192.168.1.100 |
b. 新增存放目錄
$ mkdir -p /media/SDA3/VmImage $ mkdir -p /media/SDA3/Iso |
c.使用『virsh』定義VM image 檔 及 OS 的iso檔的存放目錄
語法如下,
virsh pool-define-as <Name> <Format> - - - - "Path |
(1). 定義VM image 檔存放目錄
$virsh pool-define-as |
(2). 定義iso 檔存放目錄
$virsh pool-define-as |
(3). 列出 Stroage Pool
$ virsh pool-list --all 名稱 狀態 自動啟動 ----------------------------------------- default 啟用 yes image 啟用 yes TcViewLite 啟用 yes Iso 非啟用中 no VM-Image 非啟用中 no |
(4).啟動新增的Storage Pool 並設為自動啟動
$ virsh pool-start VM-Image Pool VM-Image started $ virsh pool-start Iso Pool Iso started $ virsh pool-autostart VM-Image Pool VM-Image marked as autostarted $ virsh pool-autostart Iso Pool Iso marked as autostarted $ virsh pool-list --all 名稱 狀態 自動啟動 ----------------------------------------- default 啟用 yes image 啟用 yes Iso 啟用 yes TcViewLite 啟用 yes VM-Image 啟用 yes |
4.建立VM
接著我們就使用『Virt-manager』來建立一台VM。
a.對著剛剛建立的連線單擊右鍵,點擊 [新增]
輸入 VM 的名稱及選擇安裝方式。
b.設定OS Type 及 Version
c. 選取 OS iso 檔
d.設定 RAM及CPU數量
設定值最大均不能超過Host所擁有的實體記憶體大小及CPU數量,若是多核心CPU 則不能超過總核心數。
e. 產生虛擬硬碟
因為要將VM存在『/media/SDC7/001.LinuxISO/』所以這邊另外選擇存放位置
f. 點選要存放的 Storage Pool 然後單擊[New Volume]
g. 新增儲存卷冊
預設的儲存卷冊名稱會與 VM 同名,副檔名會是『img』,因為這邊所選擇的儲存卷冊格式為『qcow 2』所以在副檔名前再加上『.qemu』以為標示。
記得要設定儲存卷冊容量的最大值,這邊是設定為約6Gb的大小。
點選剛剛新增的儲存卷冊
f. 設定網路卡
我們可以選擇使用『NAT』虛擬網路,若 Host有建立橋接網路卡也可以選擇『Specify shared device name』。
由於網路卡相關設定可以在VM建立之後再變更設定,所以這邊先選用『NAT』虛擬網路。
另外,Virt-type 選擇『kvm』,Architecture選擇『x86_64』。
單擊『完成』就產生一台VM,之後會直接進入OS安裝畫面。
2011年9月12日 星期一
[Linux] Chrome 與 scim 合不來的解法~~~
IBus 的中文輸入法實在需要高深的技巧才能好好的用,所以只好換成 scim~~~
換完之後.......Chrome(Google Chrome、Google Brower、Google 瀏覽器) 與 scim 居然合不來mmmmmm囧~
.Chrome沒辦法使用scim的中文輸入.....怎麼辦呢?
要改一下『/etc/X11/xinit/xinput.d/scim』。
將『GTK_IM_MODULE=xim』及『QT_IM_MODULE=xim』改成『GTK_IM_MODULE=scim』及『GTK_IM_MODULE=scim』。
存檔後再重新載入scim的設定檔即可。
換完之後.......Chrome(Google Chrome、Google Brower、Google 瀏覽器) 與 scim 居然合不來mmmmmm囧~
.Chrome沒辦法使用scim的中文輸入.....怎麼辦呢?
要改一下『/etc/X11/xinit/xinput.d/scim』。
$ sudo vim /etc/X11/xinit/xinput.d/scim |
將『GTK_IM_MODULE=xim』及『QT_IM_MODULE=xim』改成『GTK_IM_MODULE=scim』及『GTK_IM_MODULE=scim』。
#GTK_IM_MODULE=xim #QT_IM_MODULE=xim GTK_IM_MODULE=scim QT_IM_MODULE=scim |
存檔後再重新載入scim的設定檔即可。
訂閱:
文章 (Atom)