OS:ubuntu server 8.04.1
軟體:LVS2
1。安裝LVM:
apt-get install lvm-common lvm2 evms
只有安裝了evms 才會有 vgdisplay、pvcreate這些命令~
2。新加一塊硬碟`,如果用虛擬機器的話就好說了,沒有安裝虛擬機器的就用loopback做測試吧,我的是虛擬機器,所以我就講我的測試了。
3。格式化硬碟~
#fdisk /dev/sdb
回車,輸入n(建立一個新分割槽),回車,輸入p(建立一個主分割槽),回車,輸入1(主分割槽號),回車,回車(輸入分割槽起始地址,預設1),回車(輸入分割槽結束地址,預設是整塊硬碟的最後一資料塊),輸入t(修改分割槽型別,預設是83),回車,輸入8e(Linux
LVM分割槽型別),輸入w(儲存並退出),這樣會建立/dev/sdb1分割槽,完全佔用了硬碟/dev/hda的空間。
4.建立物理卷(簡稱PV)
#pvcreate /dev/sdb1
可以使用pvdisplay命令檢視物理卷的詳細資訊。執行pvcreate命令後會向硬碟中寫如pv資訊,同時也會在/etc/lvm/backup目錄下產生同樣的pv資訊檔案。
5。建立卷組(簡稱VG)
#vgcreate www /dev/sdb1
ps:建立卷組時如果使用預設的引數,最後在此基礎上建立邏輯卷時會有大小限制,預設最大不能超過256G,如果在生產系統中規劃邏輯卷大小會超過256G時,那麼在建立卷組時就要使用引數-s並指定一個分為大小,如10G,這樣建立的卷組就可以容納2T的邏輯捲了.命令如下
#vgcreate -s 10G /dev/sdb1
建立卷組時要為卷組指定一個名字,如該卷組會用來儲存web資料,就可以命名為www,也會在/etc/lvm/backup目錄下的對應檔案中寫入卷組資訊。有興趣的讀者可以開啟看看,都是文字格式的檔案。卷組建立好後可以使用命令vgdisplay命令檢視其詳細資訊。
6.建立邏輯卷(簡稱LV)
#lvcreate -L5G -nwww www
#lvcreate -L5G -njpg www
這裡的-L引數後跟的是該邏輯卷的大小,它們之間沒有空格,-n引數後跟的是該邏輯卷的名字,最後是卷組的名字。
建立好後可以使用命令lvdisplay命令檢視其詳細資訊,執行lvcreate命令會向硬碟中寫入邏輯卷資訊,對應的/etc/lvm/backup下的檔案也會得到更新。
7.給邏輯捲上建立檔案系統
#mkfs.ext3 -j /dev/www/www
#mkfs.ext3 -j /dev/www/jpg
8.建立掛載點與掛載邏輯卷
#cd /var
#mkdir www jpg
#mount /dev/www/www /var/www
#mount /dev/www/jpg /var/jpg
如果想開機自動掛載,修改/etc/fstab
加入
/dev/www/www /var/www  ext3  defaults 1 2
/dev/www/www /var/jpg  ext3  defaults 1 2
執行 mount 即可以看到掛載資訊,若沒有說明掛載失敗~
9。邏輯卷LV增大減小
 ∴增大
#lvextend -L+2G /dev/www/www
#lvdisplay
這時看到邏輯卷大小已經變大了,但這並不意味著檔案系統就隨著一起變大了,此時mount上後,用df命令檢視還是增大前的大小,這時需要用到另一個工具ext2resize,安裝後有2個命令ext2resize和ext2online,ext2resize命令必須要在解除安裝檔案系統的情況下才能使用,ext2online可以實現線上重設檔案系統大小.命令如下
#ext2online /dev/oracle/oracle 10G
#df -lh
這時就能看到檔案系統變為10G了,與邏輯卷大小一致了。使用ext2online的一個好處是,如果你在該邏輯捲上有正在執行的程式,不能終止服務,但空間快用光了,這時可以透明地增加其大小,不影響服務。
 ∴減小
#umount /oracle
#ext2resize /dev/oracle/oracle 10G
#lvreduce -L-12G
/dev/oracle/oracle
#mount /dev/oracle/oracle /oracle
#df -h
注意:減小LV可能會造成資料丟失,所以先要做一次全備份,然後解除安裝掉檔案系統,再進行操作。
10。硬碟替換~沒有測試,轉別人的。
以往如果硬碟壞掉,意味著資料丟失,於是人們發明了RAID技術,LVM本身不具備資料冗餘功能,但它可以建立的RADI技術之上,即先用幾塊硬碟組成RAID陣列,再在陣列上進行分割槽,然後在其上建立邏輯卷,如果是這種情況,其中一塊硬碟壞掉,如果是RAID5,那麼可以直接拔掉壞硬碟,插一塊好的即可。在使用LV的情況下,可以不用重啟系統將一塊硬碟中的資料轉移到另一塊上,實際上只需要一個命令pvmove就可以了。這裡以移動/dev/oracle/oracle上的資料到/dev/src/src為例進行說明。
首先在/oracle上建立1個檔案
#echo 1111>/oracle/1.txt
將第二塊硬碟加入同一卷組,這裡假設將/dev/hdb加入到卷組oracle中
#lvremove src
#vgremove src
這兩個命令是將卷組src佔用的pv騰出來。
#vgextend  oracle /dev/hdb1
將/dev/hdb1分割槽加入卷組oracle,這時可以移動分割槽了
#pvmove /dev/hda1
這樣將原來的/dev/hda1是的資料全部轉移到新的分割槽/dev/hdb1上了,現在可以將/dev/hda1從卷組oracle中移除。
#vgreduce oracle /dev/hda1
重新掛載
#mount /dev/oracle/oracle /oracle
檢視前面建立的檔案1.txt是否還在
#ls /oracle
可以看到檔案還在,說明移動成功,這樣也就完成了硬碟替換。可以看出替換硬碟沒有重啟系統,實現了線上替換
11。將硬碟轉移到另一臺計算機~
在使用普通分割槽的情況下,將硬碟掛接到其他機器上非常簡單,拔下來插上去即可使用,在使用了LVM的情況下,要稍微多一點事情,因為LV的結構是同時儲存在硬碟中也儲存在/etc/lvm/backup下,在將硬碟移動前,要將這裡面的資訊刪除,這是通過LVM附帶的一個命令vgexport實現的,到了另一臺機器上後,要建立這個資訊,是通過vgimport來實現的,下面以/dev/hda為例進行說明。
首先在機器1上:
#vgchange -a n oracle
這條命令是將卷組oracle設為不可用狀態
#vgexport oracle
注意這裡不要理解為匯出,實際上這個命令是從源系統中登出卷組。
在機器2上:
#vgimport oracle /dev/hda1
在機器2上註冊卷組oracle
#vgchange -a y oracle
啟用卷組oracle,這樣硬碟就從一臺機器移動到另一臺機器了。
注意:如果在你的發行版中執行vgimport命令沒有在/etc/lvm/backup目錄下建立LV資訊備份檔案,需要手動執行vgcfgbackup命令來備份。