详谈Linux NFS的问题
Linux,以其开源的特性,和友好的亲和性得到很多企业的喜爱。那么随着对其技术的要求,Linux NFS的问题也越来越突出。Linux NFS系统对于电脑使用的玩家的常用软件,然后我就学习及深入的研究Linux NFS系统,在这里和大家一起探讨Linux NFS系统的使用方法,希望对大家有用。
项目需求
在生产环境中我们有时候需要部署大量系统相同的服务器,当数量达到一定程度的时候,给每台服务器专门单独安装是非常耗时且枯燥的重复劳动,所以网络引导自动安装是我们解决问题的重要方法。
项目分析
想要实现网络无人职守的安装,首先需要这些计算机之间网络没有故障并且都能从网络引导,接下来我们需要一台放置安装源文件的服务器,由它提供DHCP、PXE、TFTP、Linux NFS、Kickstart、HTTP(可选)、DNS(可选)这些服务。 下面列出每个服务在这个项目中发挥的作用:
PXE:工作于C/S的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程。(这里默认由我们客户机的网卡提供了该服务)DHCP:由于客户使用了PXE是基于TCP/IP协议的,所以必须分配IP地址给客户机,而且这里还告诉了客户机TFTP Server的位置。
TFTP:PXE引导的过程需要使用TFTP协议下载我们的kernel和initrd文件以及相关的启动选择配置文件菜单等,我们的服务器TFTP 服务提供了这两个文件。有了这两个文件,我们就能引导起系统来,通过网络安装(FTP,NFS等方式)。
Kickstart:Linux NFS系统安装配置文件,当我们手动安装的时候,每一步的配置最终会保存为一个ks文件,里面记录了整个系统安装需要的一些设置,其中包括安装的包以及分区等等大量信息,当客户机安装系统的时候有了这个配置文件我们就能不必每次手动配置来完成安装了。
Linux NFS:当系统引导起来开始安装后,我们是使用了Linux NFS作为安装来源(配置方便并且容易使用),只需要选择在服务器上用Linux NFS共享出安装文件目录即可。DNS:如果我们想要每台客户机装好以后都自动设置好了它的hostname,我们可以利用DNS的反向解析让客户机获取自己的hostname。HTTP:这里为了多练习我们这里是使用了HTTP方式来提供了客户机ks文件的获取,如果你觉得麻烦,可以就使用NFS的方式。
实现过程
配置DHCP首先保证你的DHCP服务已经安装,我们vim打开/etc/dhcpd.conf,在里面加入以下内容:allow bootp;allow booting; #其实这里不加也没有关系,默认就有
option domain-name "lenovo.cn"; option domain-name-servers ns.lenovo.cn; default-lease-time 600; #默认租约时间 max-lease-time 7200; #最大租约时间 next-server 192.168.0.32 ; #TFTP服务器地址,这里还是指定为本机 filename "pxelinux.0"; #网卡ROM加载的一个配置文件 subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.110; #分配IP的范围 option domain-name-servers 192.168.0.32; #DNS服务器地址 option routers 192.168.0.1; #网关地址}
配置TFTP首先必须安装TFTP服务: tftp.i386 0:0.49-1.fc10 tftp-server-0.49-1.fc10.i386由于会默认去到/tftpboot下找文件,所以我们发现没有该目录则创建之。首先我们复制一个文件:/usr/lib/syslinux/pxelinux.0 到 /tftpboot下面。
接下来,我们将光盘目录下isolinux内的文件全部都复制到/ftpboot目录下,并且修改两个文件名(为了以后拓展功能,改名把各个系统内核区分开)。mv initrd.img initrd.fc10.img mv vmlinuz vmlinuz.fc10
然后,创建/tftpboot/pexlinux.cfg目录,在下面创建default文件并编辑之:default bootlocal #默认从本地启动
prompt 1 timeout 60 #超时时间 label bootlocal localboot 0 label fedora
kernel vmlinuz.fc10 #内核以及初始化镜像append initrd=initrd.fc10.img ramdisk_size=65536 ks=http://192.168.0.32/fc10Install.ks #指定ks文件获取路径这里我做了个简单的配置。
具体写法可以去参照网上的wiki最后,我们需要让TFTP服务启动,去修改/etc/xinetd.d/tftp这个文件,修改其中两 项: disable = no #打开TFTP服务的启用
server_args = -s /tftpboot #服务器的根目录设为/tftpboot
配置NFS NFS在这里负责共享安装需要的文件,需要共享下安装文件的目录(拷贝光盘下所有文件到那个目录),配置如下:/FC10Install 192.168.0.0/24(ro,sync) 配置DNS(可选)在DNS里面对DHCP分配出去那个网段进行反向解析,具体内容参见DNS服务搭建部分。
制作ks文件在我们的系统安装好以后在root的家目录下有个anaconda-ks.cfg,我们安装个配置工具system-config-kickstart。使用这个工具打开我们现有的anaconda-ks.cfg这个文件,进去后注意选中文字安装界面和安装好后自动重启。
另外,如果安装好后需要运行一些脚本可以修改Post-Installation部分。修改完后我们另存为一个文件,这里如果使用HTTP提供给客户可保存到/var/www/html/ 目录下,注意权限修改为644。这里是我的一个ks文件示例:
6.配置apache(可选)如果以前做过虚拟主机或者改过默认网站主目录,改回去成默认状态即可。
7.启动各类服务: