LINUX下raid5+lvm

raid5+lvm實現硬盤的擴張和讀寫速度以及安全的系統
我們在這裏以案例的方式來說明一下
案例:使用三個硬盤存儲數據,保證數據安全性,同時還能讓磁盤空間根據需要動態的縮放
磁盤有 /dev/sda /dev/sdb /dev/sdc /dev/sdd
首先我們把/dev/sdb /dev/sdc /dev/sdd 分別分區爲/dev/sdb1 /dev/sdc1 /dev/sdd1
1 我們做raid5至少要有3塊硬盤
2 cp /usr/share/doc/raidtools-1.00.3/raid1.conf.sample /etc/raidtab
3 vi /etc/raidtab

/dev/hda1 改成/dev/sdb1   ;  /dev/hdb1改成/dev/sdc1  ; /dev/hdc1改成/dev/sdd1
4 mkraid -R /dev/md0
5 :pvcreat /dev/md0 意思是說初始化設備/dev/md5 然後用vgscan來描一下
6: vgcreate aaa /dev/md0 把/dev/md0 創建vg 然後給這個捲起個名字.
7:vgdisplay aaa 檢察這個VG的情況
8: lvcreat -n home -L 250M aaa 在aaa這裏提取250M創建一個名字爲home的卷.
9: lvcreat -n var -L 250M aaa 在aaa這裏提取250M創建一個名字爲var的卷.
10: mkfs.ext3 /dev/aaa/home  格式化home這個邏輯卷. 邏輯卷用 lvscan來檢查
11: mkfs.ext3 /dev/aaa/var   格式化var這個邏輯卷. 邏輯卷用 lvscan來檢查
12:mkdir /mnt/home 在mnt下建home文件夾
13:mount /dev/aaa/home /mnt/home 我們把/dev/aaa/home掛載在這裏
12:mkdir /mnt/var  在mnt下建var 文件夾
13:mount /dev/aaa/var /mnt/var 我們把/dev/aaa/var掛載在這裏
14:cp -a /home/* /mnt/home 把現在的硬盤上的home的數據移植到邏輯捲上去
15:cp -a /var/* /mnt/var   把現在的硬盤上的var的數據移植到邏輯捲上去
16:vi /etc/fstab 編輯/etc/fstab
17:寫入 /dev/home    /home   ext3   defaults 0 0
        /dev/var     /var    ext3   defaults 0 0
18:vi /etc/rc.sysinit 搜索一下raid 在2 > &1下面加入這句話 raidstart /dev/md5
   加這句話的作用是爲了計算機在重新啓動的時候會識別raid設備。
19:rm -rf /mnt/var /mnt/home
20:lvcreate -n root -l 1040M aaa 在aaa這裏提取1024M創建一個名字爲root的卷.爲了把根分區移到邏輯捲上。
21:mkfs.ext3 /dev/aaa/root
22: mount /dev/aaa/root /mnt
23:cd mnt
24:mkdir proc tmp var home misc opt mnt initrd 我們在這裏先建這些文件夾。因爲現在這些文件夾目前是空的
25: cd /    cp -a bin dev etc lib sbin root usr /mnt & 按ctrl+z掛起,後臺運行我們把這些文件拷貝到 /mnt下   現在不能把 boot拷貝到本世紀末/mnt,因爲它現在是運    行中
26:lsmod 看看啓動時的加載模塊 可以看到有raid5 xor是 raid5依賴的 lvm-mod需要lvm來驅動的,如果您的硬盤是sisc硬盤還要Buslogic驅動程序
27:mkinitrd /boot/initrd-lvm-$(uname -r).img $(uname r)    boot是輸出的位置。initrd-lvm-$(uname -r).img $(uname r)自動產生內核的版本,內核的版本由它來產生
28:file /boot/initrd-lvm-2.4.22-1.22115.nptl.img 看看是什麼壓縮格式的。我們可以發現是gzip格式的
29:mv /boot/initrd-lvm-2.4.22-1.22115.nptl.img /boot/initrd-lvm-2.4.22-1.22115.nptl.img.gz 改成以gz後綴結尾的,否則是不會被gz解開
30:gunzip initrd-lvm-2.4.22-1.22115.nptl.img.gz 解開這個包
31:mount initrd-lvm-2.4.22-1.22115.nptl.img /opt -o loop 掛載到臨時目錄,加上-o loop 是以路外設備來掛載
32:cd opt 來訪問這個設備等於訪問/boot這個設備 df 看一看大小
33:ls dev  對這裏的配置作些修改,看看/dev有沒有lvm設備文件
34: cp -a /dev/lvm dev  拷貝dev裏面的lvm到現在的dev設備文件裏
35: cp -a /dev/aaa dev  拷貝dev裏面的aaa卷族拷貝到現在的dev設備文件裏
36:ls dev 確定dev裏面有lvm和aaa文件
37:cp -a /dev/sd[abcd] dev 把sd[abcd]這四快硬盤拷到dev設備裏面去
38:cp -a /dev/sd[abcd]1 dev 把sd[abcd]1這幾個分區拷貝到 dev 裏去 用ls dev 來看看有沒有。
39: more linuxrc     linuxrc是內核啓動時的第一個腳本。我們把raidautorun /dev/md0 註釋掉。在下面寫上raidstart /dev/md0 再加上 vgscan 來掃描有aaa家族
    再加上 vgchange -a y 表示把所有的卷族激活,然後把mount -o defaults --ro -t ext3 /dev/root/sysroot 改成 mount -o defaults --ro -t ext3     /dev/aaa/root/sysroot,這些是啓動文件。
40:上面改完這些,其實這些並沒有存在虛擬磁盤鏡像裏,也就是說內核在啓動之後是無法被執行的,還要命令去41
41:cp /sbin/vgscan bin
    cp /sbin/vgchange bin
    cp /sbin/raidstart bin
42:ls bin  看看是否考到了bin裏了
43:看看raidstart啓動的時候需要哪些庫
    ldd /sbin/raidstart
    ldd /sbin/vgscan
    ldd /sbin/vgchange
 一定要在虛擬磁盤裏建一模一樣的啓動系統,否則是不可以啓動的
44:cd lib
45:mkdir tls
46:cp /lib/tls/libc.so.6 /opt/lib/tls
47:cp /lib/liblvm-10.so1.1 ./
   cp /lib/ld-linux.so.2.1 ./
48: ls /opt/lib 確定要有這幾個目錄
49:必須爲linuxrc下的raidstart /dev/md0分配一個配置文件。
50:cp /etc/raidtab etc
51:ls etc 確定由這個文件
52:umount /opt
53:mv /boot/initrd-lvm-2.4.22-1.22115.nptl.img -c > /boot/initrd-lvm-2.4.22-1.22115.nptl.gz     -c(指定標準輸出) >(導向到)
54: vi /boot/grub/grub.conf 從title到img複製下來
55:在core後面的名字去掉改成LVM 把LABEL=/ 改成 /dev/aaa/root
56:類似的改成 initrd /boot/initrd-lvm-2.4.22-1.22115.nptl.gz
57: vi /etc/fstab
58:把LABEL=/ 改成 /dev/aaa/root
到此raid5+lvm  完成了. E網咖啡貓的講解隨之也完成了.
 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章