设置一个高度可用的NFS服务器
版本1.0
作者:Falko Timme
最后编辑:03/07/2006
在本教程中,我将介绍如何设置高可用性的NFS服务器,可用作其他高可用性服务的存储解决方案,例如,负载均衡的Web服务器集群。 如果您有一个具有两个或多个服务于相同网站的节点的Web服务器集群,则这些节点必须访问相同的数据池,以便每个节点都可以提供相同的数据,无论负载均衡器是否将用户指向节点1或节点n。 这可以通过NFS服务器上的所有Web服务器节点(NFS客户端)可以访问的NFS共享来实现。
由于我们不希望NFS服务器成为另一个“单点故障”,我们必须使其高度可用。 实际上,在本教程中,我将创建两个使用DRBD实时镜像数据的NFS服务器,并使用心跳进行监视 ,如果一个NFS服务器出现故障,则另一个将以静默方式接管。 对于外部(例如Web服务器节点),这两个NFS服务器将显示为单个NFS服务器。
在这个设置我将使用Debian Sarge(3.1)为两个NFS服务器以及NFS客户端(代表Web服务器集群的一个节点)。
我想先说说这不是建立这样一个系统的唯一途径。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1我的设置
在本文档中,我使用以下系统:
- NFS服务器1: server1.example.com ,IP地址: 192.168.0.172 ; 我会把这个称为server1 。
- NFS服务器2: server2.example.com ,IP地址: 192.168.0.173 ; 我会把这个称为server2 。
- 虚拟IP地址:我使用192.168.0.174作为虚拟IP地址,表示NFS群集到外面。
- NFS客户端(例如来自Web服务器集群的节点): client.example.com ,IP地址: 192.168.0.100 ; 我将NFS客户端称为客户机 。
- / data目录将被DRBD在server1和server2之间镜像。 它将包含NFS共享/数据/导出 。
2基本安装server1和server2
首先我们为server1和server2设置了两个基本的Debian系统。 您可以按照本教程前两页的说明进行操作: http : //www.youcl.com/perfect_setup_debian_sarge 。 作为主机名,您分别输入server1和server2 ,作为域输入example.com 。
关于分区,我使用以下分区方案:
/ dev / sda1 - 100 MB / boot(primary,ext3,Bootable flag:on)
/ dev / sda5 - 5000 MB /(logical,ext3)
/ dev / sda6 - 1000 MB交换(逻辑)
/ dev / sda7 - 150 MB unmounted (logical,ext3) (将包含DRBD的元数据)
/ dev / sda8 - 26 GB unmounted (logical,ext3) (将包含 / data 目录)
您可以根据硬盘大小更改分区的大小,并且您的分区名称也可能会有所不同,具体取决于您的硬件(例如,您可能使用/ dev / hda1而不是/ dev / sda1等)。 但是,重要的是/ dev / sda7 有一个超过128 MB ,因为我们将使用这个分区来使用128 MB的DRBD元数据。 另外,确保/ dev / sda7以及/ dev / sda8在server1和server2上的大小相同 , 请不要挂载它们 (当安装程序询问你时:
没有为SCSI1(0,0,0)(sda)的分区#7中的ext3文件系统分配挂载点。
你要返回分区菜单吗?
请回答不 ) / dev / sda8将成为我们的数据分区(即我们的NFS共享)。
基本安装后,请确保给出server1和server2的静态IP地址( server1 : 192.168.0.172 , server2 : 192.168.0.173 ),如https://www.youcl.com/perfect_setup_debian_sarge_p3开头所述)。
之后,您应该在两个系统上检查/ etc / fstab 。 两个系统上的矿井看起来都是这样的:
# /etc/fstab: static file system information. |
如果你发现你看起来像这样,例如:
# /etc/fstab: static file system information. |
那么请确保在以下配置文件中使用/ dev / h da而不是/ dev / s da 。 还要确保/ dev / sda7 (或/ dev / hda7 )和/ dev / sda8 (或/ dev / hda8 ...)不在/ etc / fstab中列出!
3同步系统时间
服务器1和服务器2都具有相同的系统时间很重要。 因此,我们在两者上安装NTP客户端:
server1 / server2:
apt-get install ntp ntpdate
之后,您可以检查两者是否具有相同的运行时间
server1 / server2:
日期