歡迎您光臨本站 註冊首頁

gnbd+gfs+RHCS+mdadm能否實現這樣的功能

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

gnbd+gfs+RHCS+mdadm能否實現這樣的功能

現有四台存儲伺服器和兩台應用伺服器。我想知道用gnbd+gfs+RHCS+mdadm 能否實現這樣的功能:當通過任意一台應用伺服器寫入一個文件到存儲伺服器時,該文件是被stripe到這四台存儲伺服器中,而且,當其中的一台存儲伺服器掛掉后,集群仍能正常運作(像raid5那樣)。
我是這麼做的。在四台存儲伺服器上,分別用gnbd_export將各自的/dev//hdb1 導出。 然後在其中的一台應用伺服器上用 gnbd_import將四台存儲伺服器上的/dev/hdb1都導入。然後,用
mdadm -C /dev/md0 -l5 -n4 /dev/gnbd
將這四個/dev/hdb1 做成raid5 ,接著在這台應用伺服器上將/dev/md0導出再導入,然後用  
gfs_mkfs -p lock_dlm -t bob_cluster:gfs -j 2 /dev/gnbd/md0
建立gfs 文件。 最後將它掛載到 /mnt/gfs.
在另一台應用伺服器上,將前面那台應用伺服器導出的 /dev/md0 導入,然後也掛載到/mnt/gfs 上。
分別在這兩台應用伺服器上的/mnt/gfs 目錄寫入文件,均能正常寫入。而且能互相看到更新的文件。但是,當將任意一台存儲伺服器斷開網路后,往/mnt/gfs里touch 一個文件能執行,但是 ls  /mnt/gfs時 就一直停止在那裡無法顯示結果,直到將斷開的伺服器重新接入網路才能顯示出結果。這就和我想要的效果有出入了 。
哪位大蝦可否指點下,我這種方法是否可行,如果可行那我是在那個步驟做錯了。如果不行,還有什麼方法可實現我想要的效果呢? 謝謝!

具體配置如下:

四台伺服器分別名為:svr1,svr2,svr3,svr4  (每台都有個已分區類型為:FD 的/dev/hdb1 設備)
兩台應用伺服器分別名為:app1,app2

在四台存儲伺服器上分別導出設備:
# gnbd_serv -v -n
# gnbd_export -v -e gfs1 -d /dev/hdb1 -c

# gnbd_serv -v -n
# gnbd_export -v -e gfs2 -d /dev/hdb1 -c

# gnbd_serv -v -n
# gnbd_export -v -e gfs3 -d /dev/hdb1 -c

# gnbd_serv -v -n
# gnbd_export -v -e gfs4 -d /dev/hdb1 -c


在兩台應用伺服器上分別執行:
# service cman start
# service cman start

# service gfs start
# service gfs start

# service rgmanager start
# service rgmanager start

/etc/cluster/cluster.conf的配置文件如下:

<?xml version="1.0" ?>
<cluster config_version="1" name="bob_cluster">
    <cman/>
        <clusternodes>
            <clusternode name="app1" nodeid="1" votes="1">
                <fence>
                    <method name="single">
                        <device name="trin-apc" nodename="app1"/>
                    </method>
                </fence>
            </clusternode>
            <clusternode name="app2" nodeid="2" votes="1">
                <fence>
                    <method name="single">
                        <device name="trin-apc" nodename="app2"/>
                    </method>
                </fence>
            </clusternode>
        </clusternodes>
        <fencedevices>
            <fencedevice agent="fence_manual" name="trin-apc"/>
        </fencedevices>
</cluster>


在app1和app2上分別載入模塊:
# modprobe gnbd
# modprobe gnbd

在app1上導入svr1-4的/dev/hdb1設備
# gnbd_import -v -i svr1
# gnbd_import -v -i svr2
# gnbd_import -v -i svr3
# gnbd_import -v -i svr4

在app1上對導入的四個/dev/hdb1做raid5
# mdadm -C /dev/md0 -l5 -n4 /dev/gnbd

在app1上將/dev/md0導出
# gnbd_serv -v -n
# gnbd_export -v -e md0 -d /dev/md0 -c

在app1和app2上分別導入/dev/md0
# gnbd_import -v -i app1
# gnbd_import -v -i app1

在app1和app2上分別載入gfs和lock_dlm
# modprobe gfs
# modprobe gfs
# modprobe lock_dlm
# modprobe lock_dlm

在app1上建立gfs文件系統
# gfs_mkfs -p lock_dlm -t bob_cluster:gfs -j 2 /dev/gnbd/md0

掛載文件系統
# mount -t gfs /dev/gnbd/md0 /mnt/gfs
# mount -t gfs /dev/gnbd/md0 /mnt/gfs


PS:就這麼多分了,無法給再多的,抱歉。

[ 本帖最後由 yman 於 2008-3-11 11:03 編輯 ]
《解決方案》

修改/sbin/fence_manual為
#!/bin/bash
exit 0
我想就可以了.
《解決方案》

可能是fence配置有問題.只有問題,沒有相關環境,無法準確判斷.
《解決方案》

原帖由 wysilly 於 2008-3-10 23:07 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
可能是fence配置有問題.只有問題,沒有相關環境,無法準確判斷.

具體配置帖出來了  麻煩wysilly兄幫忙看下! 謝謝了。
《解決方案》

自己頂下,其他的大蝦能否指點下。謝謝!
《解決方案》

再頂一下,誰來指點下阿。
《解決方案》

你使用的系統版本和cluster suit以及gfs版本是什麼?

這個結構中,我沒有用過gnbd,因為那個東西現在很少人用了,畢竟性能有點差。但我可以從cluster角度看,這個cluster的配置並不完整。你可以把所有的資源加到服務組裡面試一下。
《解決方案》

系統是centos release 5 (Final) ,cluster suit以及gfs都是系統自帶的
《解決方案》

原帖由 jerrywjl 於 2008-3-14 00:31 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
你使用的系統版本和cluster suit以及gfs版本是什麼?

這個結構中,我沒有用過gnbd,因為那個東西現在很少人用了,畢竟性能有點差。但我可以從cluster角度看,這個cluster的配置並不完整。你可以把所有的資源 ...


看來這個東西我要自己找環境配一下,但是我不明白的是LZ為什麼非要用GNBD做存儲呢?!那個東西的性能,唉!。。。。。。
《解決方案》

原帖由 jerrywjl 於 2008-3-14 22:23 發表 http://linux.chinaunix.net/bbs/images/common/back.gif



看來這個東西我要自己找環境配一下,但是我不明白的是LZ為什麼非要用GNBD做存儲呢?!那個東西的性能,唉!。。。。。。
我並不是一定要GNBD,只是不知道有什麼可以代替它,你能否介紹下。或者GNBD+GFS+RHCS+MDADM全都換掉另外用別的工具都行,只要能滿足我的需求。在網上搜了好久的資料都沒找到適合我的,多數都是用共享同一存儲櫃,或者有做并行的,但是存儲伺服器之間卻沒有象raid5那樣的功能。建議jerrywjl兄有時間配置一下,然後共享一下,供有需要的人學習。謝謝!

[火星人 ] gnbd+gfs+RHCS+mdadm能否實現這樣的功能已經有350次圍觀

http://coctec.com/docs/service/show-post-7612.html