用VMWare 实现4节点的Lustre 并行文件系统集群
注:这是我附在某一个讨论线索中作为回贴发出的,这几天在整理本版帖子,发现还是有点用,为了便于大家查找,拖出来单独成贴供大家参考。
用VMWare 实现4节点的Lustre 并行文件系统集群
作者:nntp 最后修改于2006/06/30
==========================================================================
简介: 本文介绍了通过2台物理服务器和vmware系统,虚拟出4个独立的linux服务器实现
环境配置: 2台物理服务器, 4个虚拟节点.
Server1: AMD64 , host OS SLES9SP3+errata x86-64 version, vmware server beta(latest build)
vmware guestOS 1 : RHEL4U3 x86-64 version => mds
vmware guestOS 2 : RHEL4U3 x86-64 version => client
lustre的那些rpm包我装的是X86-64的版本(版本1.4.6)
Server2: Intel dual core EM64T, host OS SLES9SP3+errara x86-64 version,vmware server beta(latest build)
vmware guestOS 1: RHEL4U3 x86 version => ost1
vmware guestOS 1: RHEL4U3 x86 version => ost1
lustre的那些rpm包我装的是X86的版本(版本1.4.6)
============================================================================
config.sh 文件内容
#!/bin/sh
# config.sh
# Create nodes
rm -f config.xml
lmc -m config.xml --add net --node node-mds --nid n1 --nettype tcp
lmc -m config.xml --add net --node node-ost1 --nid n3 --nettype tcp
lmc -m config.xml --add net --node node-ost2 --nid n4 --nettype tcp
lmc -m config.xml --add net --node client --nid n2 --nettype tcp
# Cofigure MDS
lmc -m config.xml --add mds --node node-mds --mds mds-test --fstype ldiskfs --dev /tmp/mds-test --size 50000
# Configures OSTs
lmc -m config.xml --add lov --lov lov-test --mds mds-test --stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0
lmc -m config.xml --add ost --node node-ost1 --lov lov-test --ost ost1-test --fstype ldiskfs --dev /tmp/ost1-test --size 100000
lmc -m config.xml --add ost --node node-ost2 --lov lov-test --ost ost2-test --fstype ldiskfs --dev /tmp/ost2-test --size 100000
# Configure client (this is a 'generic' client used for all client mounts)
lmc -m config.xml --add mtpt --node client --path /mnt/lustre --mds mds-test --lov lov-test
===============================================================================
所有4个node 的 /etc/hosts 文件内容
[root@n1 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost
192.168.0.31 n1
192.168.0.32 n2
192.168.0.33 n3
192.168.0.34 n4
===============================================================================
产生xml文件之后,分别scp到每个node的/root目录
===============================================================================
启动OST
root 登陆到ost1,运行 lconf --reformat --node node-ost1 config.xml
root 登陆到ost1,运行 lconf --reformat --node node-ost2 config.xml
root 登陆到mds,运行 lconf --reformat --node node-mds config.xml
root 登陆到client,运行 lconf --node client config.xml
这个时候,在client node 上,用root运行 df -hT 命令, 已经看到 client node的 /mnt/lustre 被mount上了,
===============================================================================
屏幕信息
启动OST1的时候的屏幕信息
[root@n3 ~]# lconf --reformat --node node-ost1 config.xml
loading module: libcfs srcdir None devdir libcfs
loading module: lnet srcdir None devdir lnet
loading module: ksocklnd srcdir None devdir klnds/socklnd
loading module: lvfs srcdir None devdir lvfs
loading module: obdclass srcdir None devdir obdclass
loading module: ptlrpc srcdir None devdir ptlrpc
loading module: ost srcdir None devdir ost
loading module: ldiskfs srcdir None devdir ldiskfs
loading module: fsfilt_ldiskfs srcdir None devdir lvfs
loading module: obdfilter srcdir None devdir obdfilter
NETWORK: NET_node-ost1_tcp NET_node-ost1_tcp_UUID tcp n3
OSD: ost1-test ost1-test_UUID obdfilter /tmp/ost1-test 100000 ldiskfs no 0 0
OST mount options: errors=remount-ro
[root@n3 ~]#
启动OST2的屏幕信息
[root@n4 ~]# lconf --reformat --node node-ost2 config.xml
loading module: libcfs srcdir None devdir libcfs
loading module: lnet srcdir None devdir lnet
loading module: ksocklnd srcdir None devdir klnds/socklnd
loading module: lvfs srcdir None devdir lvfs
loading module: obdclass srcdir None devdir obdclass
loading module: ptlrpc srcdir None devdir ptlrpc
loading module: ost srcdir None devdir ost
loading module: ldiskfs srcdir None devdir ldiskfs
loading module: fsfilt_ldiskfs srcdir None devdir lvfs
loading module: obdfilter srcdir None devdir obdfilter
NETWORK: NET_node-ost2_tcp NET_node-ost2_tcp_UUID tcp n4
OSD: ost2-test ost2-test_UUID obdfilter /tmp/ost2-test 100000 ldiskfs no 0 0
OST mount options: errors=remount-ro
[root@n4 ~]#
启动MDS的屏幕信息
[root@n1 ~]# lconf --reformat --node node-mds config.xml
loading module: libcfs srcdir None devdir libcfs
loading module: lnet srcdir None devdir lnet
loading module: ksocklnd srcdir None devdir klnds/socklnd
loading module: lvfs srcdir None devdir lvfs
loading module: obdclass srcdir None devdir obdclass
loading module: ptlrpc srcdir None devdir ptlrpc
loading module: mdc srcdir None devdir mdc
loading module: osc srcdir None devdir osc
loading module: lov srcdir None devdir lov
loading module: mds srcdir None devdir mds
loading module: ldiskfs srcdir None devdir ldiskfs
loading module: fsfilt_ldiskfs srcdir None devdir lvfs
NETWORK: NET_node-mds_tcp NET_node-mds_tcp_UUID tcp n1
MDSDEV: mds-test mds-test_UUID /tmp/mds-test ldiskfs no
recording clients for filesystem: FS_fsname_UUID
Recording log mds-test on mds-test
LOV: lov_mds-test 4f3bf_lov_mds-test_f34d7ba738 mds-test_UUID 0 1048576 0 0 [u'ost1-test_UUID', u'ost2-test_UUID'] mds-test
OSC: OSC_n1_ost1-test_mds-test 4f3bf_lov_mds-test_f34d7ba738 ost1-test_UUID
OSC: OSC_n1_ost2-test_mds-test 4f3bf_lov_mds-test_f34d7ba738 ost2-test_UUID
End recording log mds-test on mds-test
MDSDEV: mds-test mds-test_UUID /tmp/mds-test ldiskfs 50000 no
MDS mount options: errors=remount-ro
[root@n1 ~]#
启动client 的屏幕信息
[root@n2 ~]# lconf --node client config.xml
loading module: libcfs srcdir None devdir libcfs
loading module: lnet srcdir None devdir lnet
loading module: ksocklnd srcdir None devdir klnds/socklnd
loading module: lvfs srcdir None devdir lvfs
loading module: obdclass srcdir None devdir obdclass
loading module: ptlrpc srcdir None devdir ptlrpc
loading module: osc srcdir None devdir osc
loading module: lov srcdir None devdir lov
loading module: mdc srcdir None devdir mdc
loading module: llite srcdir None devdir llite
NETWORK: NET_client_tcp NET_client_tcp_UUID tcp n2
LOV: lov-test e0002_lov-test_a77190f32b mds-test_UUID 0 1048576 0 0 [u'ost1-test_UUID', u'ost2-test_UUID'] mds-test
OSC: OSC_n2_ost1-test_MNT_client e0002_lov-test_a77190f32b ost1-test_UUID
OSC: OSC_n2_ost2-test_MNT_client e0002_lov-test_a77190f32b ost2-test_UUID
MDC: MDC_n2_mds-test_MNT_client 96c98_MNT_client_1567f4dc95 mds-test_UUID
MTPT: MNT_client MNT_client_UUID /mnt/lustre mds-test_UUID lov-test_UUID
检查 client node 文件系统加载情况
[root@n2 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
ext3 4.1G 3.0G 920M 77% /
/dev/sda1 ext3 99M 14M 80M 15% /boot
none tmpfs 187M 0 187M 0% /dev/shm
config lustre_lite 190M 8.5M 171M 5% /mnt/lustre
[root@n2 ~]#
[ 本帖最后由 nntp 于 2006-7-1 00:21 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
真是不错,要是图文并茂就更好了。
找个时间试试~~.
你可以动手做完后,把图补上.
作个记号,明天试试!
楼主装的是哪个版本的lustre?1.4.6.1还是???
楼主有尝试做failover么?
呵呵。很好噢。
啊,就做4个节点了,俺两个节点有点问题,向牛人请教:
我安装完oracle cluster软件后的状态
-bash-3.00$ ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.db1.gsd application ONLINE ONLINE db1
ora.db1.ons application ONLINE ONLINE db1
ora.db1.vip application ONLINE ONLINE db1
ora.db2.gsd application ONLINE ONLINE db2
ora.db2.ons application ONLINE ONLINE db2
ora.db2.vip application ONLINE ONLINE db2
-bash-3.00$ olsnodes -n
db1 1
db2 2
-bash-3.00$ ls -l /etc/init.d/init.*
-r-xr-xr-x 1 root root 1951 Jul 23 22:09 /etc/init.d/init.crs*
-r-xr-xr-x 1 root root 4721 Jul 23 22:09 /etc/init.d/init.crsd*
-r-xr-xr-x 1 root root 35401 Jul 23 22:09 /etc/init.d/init.cssd*
-r-xr-xr-x 1 root root 3197 Jul 23 22:09 /etc/init.d/init.evmd*
完后安装oracle 软件无法选节点,只能装单机,偶不是很明白,请赐教....
楼上这个是啥意思?
另外,请问nntp:
1,--dev /tmp/mds-test --size 50000 这个是什么意思?
2,lmc -m config.xml --add lov --lov lov-test --mds mds-test --stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0
这句中的--stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0也没看明白。
3,很明显,这个例子并没说明它并行实际实现,只能算是一个练习。我想ost1和ost2应该分区和为df -h看到的值,这个理解应该是正确的吧?
我刚看完lustre howto,跟multiple nodes例子一样,所以只能请教了。
我明天会去看看mannul,也许到时候可以得到释疑。
lustre文件系统,我初步有了一些印象。
1.mds相当于一个 调度器,为了实现冗余,应该这里做双机(HA),lustre肯定有实现。
2,ost相当于GFS的GNDB servers,它是实际负责IO的服务器。
一个理想的结构应该如下:
storage1 storage2
| |
----fc switch---
|
__________________
| | | | |
ost1 ost2 ost3 ost4 ost5
| | | | |
___________________
| ethernet Gb
------------------------
| |
mds1 (HA) mds2
| |
-------------------------------------------------
| | | | | |
client1 client2 client3 client4 client5 ....clientn
ost 上面一层还应可以考虑lvm2等实现动态分区调整(也许在lustre文件层可以调整)。