用RedHat Enterprise Linux 6部署Linux无盘工作站(4)

5.4把client运行所需要的系统文件拷到client将要chroot到的目录/app/root里面:

[root@localhost ~]# rsync -avz --exclude='/proc/*' --exclude='/sys/*' --exclude='/mnt/*' --exclude='/app/*' / /app/root

从上面的命令里可看到client运行所需要的系统文件来自哪里,没错,就是server的系统文件同步过去了(/ /app/root,把当前系统/根目录整个同步到/app/root目录下面去了)。关于client运行所需要的系统文件来源问题可以有这么几个:

(1)把client安装上硬盘,装上无盘运行时需要的系统(如rhel,CentOSFedora等),把client装好系统后的那些系统文件同步到server的nfs共享目录里去,然后就可以拆掉client的硬盘了。

(2)直接用server的系统文件,我上面的就是直接用的server的系统文件。

(3)在虚拟机上安装个系统(装的系统当然是client将要运行的系统),然后把系统文件拷贝到server的nfs共享目录里(我们这里当然就是/app/root这个目录了)去。

上面的rsync命令还排除了一些目录和文件,如/proc/*、/sys/*等,这些目录都是本机运行相关的,所以只要目录名,不要里面的文件和子目录。

系统文件复制完后,client的系统配置还要做独立性修改,如:

(1)确保client系统的fstab文件(请注意文件的路径,区别于server的fstab文件)至少有下面这些内容:

none                    /tmp                    tmpfs   dafault         0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

参考样板:

[root@diskless-s rc3.d]# cat /app/fedora/etc/fstab |grep -vE "^#|^$"
192.168.17.8:/app/fedora /                       nfs    defaults        1 1
none                    /tmp                    tmpfs   defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
nfs性能调整样板:

[root@diskless-s rc3.d]# cat /app/fedora/etc/fstab |grep -vE "^#|^$"
192.168.17.8:/app/fedora     /          nfs    sync,intr,rw,nolock,rsize=8192,wsize=8192         1 1          \\rsize限制读取速度,防止nfs流量过大导致网卡丢包。
none                    /tmp                    tmpfs   defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

(2)client系统的网卡配置文件因为是从server原样复制过去的,所以直接禁用就行,因为系统引导文件default里已经配置client可以dhcp到ip地址了。

[root@localhost ~]# cat /app/root/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:E0:52:9B:30:6B"
NM_CONTROLLED="yes"
ONBOOT="no"
如上设置ONBOOT="no",把它禁掉。

(3)client系统的nfs、dhcpd、xinetd(tftp)也都是复制自server系统的,都要禁掉,到/app/root/etc/rc3.d(还有rc4.d和rc5.d)里面把相应服务名称里的S改为K,也可以在client启动进入系统后再停止和禁用,可以照猫画虎:

service xinetd stop

chkconfig --level 345 xinetd off

五、结束语:

至此就可以启动client了,可以先server和client用网线直连测试下,没意外的话就client能进去系统了(server上的nfs、dhcpd和xinetd服务可以先全部重启下),无盘项目至此完工。一些后续说明:

先前,我本来打算用fedora13的livecd的iso镜像文件做client端的系统,试过多次都没有成功,主要是因为那会儿server的nfsroot支持我还没弄好,也还不知道必须要装dracut-network,甚至不知道linux无盘工作站需要用到dracut,要是谁有兴趣研究,并能做成功的话欢迎交流心得。

以上项目从无知到部署完成耗时近一周(修订1:修改结构--client端改成fedora14查找错误原因又耗时1周),虽然间或做过很多别的工作,但也耗时也不少,查过很多资料,惭愧的是那些资料网页都关掉了,现在再找记录也没心思找了,只这篇回忆录的编写就耗时近1天(修订1:修订又半天),也算我尽了大耐心了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyzdxf.html