注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

Linux LTSP(瘦客户端)原理回顾  

2013-08-31 14:29:37|  分类: linux终端 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

         启动一个瘦客户端系统需要几个步骤,所以理解每一步的具体操作非常重要,熟记这些步骤你就会很容易解决启动过程中出现的各种问题。

          通常,启动一个LTSP客户端需要以下四个服务的支持:

  • DHCP

  • TFTP

  • NFS or NBD   #这里的nbd也是与nfs有着健壮的功能

  • SSH

          这里将按顺序来逐个解释每个服务在启动过程中的功能。


LTSP基本环境

       为了在一台计算机上安装瘦客户端,我们需要在工作站上运行一个特定版本的Linux。虽然整个网络里的计算机上都要安装Linux操作系统,但并不要求每台计算机都要有硬盘,仅仅需要服务器上拥有足够的硬盘(ssd更好),并且能够运行服务器程序。

       这些经过配置的Linux可以有效的在整个网络里安装运行,管理员可以根据不同计算机的需求来设置不同的chroot环境。比如说,你有一些Power PC Macsx86 PC等,这样你需要在服务器上设置两个路径(/opt/ltsp/ppc&i386)分别存放相应的启动程序。

        这个chroot到底是啥意思呢?顾名思义,就是change root的意思,因为引导计算机启动的时候需要根据CPU的不同分别设置不同的启动路径——/opt/ltsp/ARCH,所以你需要做的就是使用这个chroot命令来管理启动过程。


瘦客户端(ltsp)启动过程详细说明

    1. 现在有好几种方法可以将Linux内核启动起来,在接下来的文章里我们会详细介绍第一种:

      • Bootrom (Etherboot, PXE)

      • Floppy

      • HardDisk

      • CD-ROM

      • USB devices

    2. 一旦计算机将内核装载到内存中,内核就会开始启动;

    3. 内核启动系统的过程中,还能安装识别的设备驱动;

    4. 从现在开始,有趣的事情开始了……在启动内核的过程中,一个initramfs(#@的映像文件也会被装载在内存里;

    5. 正常情况下,内核装载完毕后就会直接调用upstart来启动服务器或者工作站,然而在这里,我们让内核另外执行了一个成为/init的小脚本,这个脚本干嘛的呢?

    6. 说到/init脚本,它首先要做的就是mount上了/proc/sys两个文件夹,并且启动udev来初始化硬件,比如网卡,这个硬件至关重要因为以后的启动过程都需要这个硬件的支持。同时/init脚本还创建了一个很小的ramdisk,这儿可以存放一些临时的文件,比如xorg.conf

    7. 大家平时熟悉的环路接口(Loop back interface)也被配置好了,也就是我们常用的127.0.0.1

    8. 接下来系统会启动一个DHCP客户端程序(ipconfig),这个程序会向DHCP server发送配置请求,从而得到关键的nfs root服务器、默认网关等信息;

    9. 服务器把网络信息发给客户端后,客户端就开始配置root服务器、默认网关;

    10. 到此为止,root的文件系统是在ramdisk上,但这还远远不够。之后要做的就是在NBD或者NFS系统上挂载root文件系统,用来保存永久存放的文件。若要使用NBD,需要先载入一个映像文件,存在于/opt/ltsp/images/i386.img。如果使用NFS,映像文件通常存放于/opt/ltsp/i386目录下。注意:绝对不能简单的挂载在根目录/,首先要挂载在一个单独的目录下,然后使用run-init命令来把root文件系统转移到新的系统下。当这步完成后,整个文件系统才会被挂载在/之下。从现在开始,所有要创建的系统目录比如/tmp, /var就可以创建了;

    11. 一旦挂载文件系统成功,/init这个脚本的使命也就完成了,接下来我们需要执行熟悉的/sbin/init命令;

    12. /sbin/init命令会读取/etc/event.d来配置瘦客户端的环境变量,然后,upstart命令就会顺序执行/etc/rcS.d中的脚本;

    13. S32ltsp-client-setup这个命令也会被执行,主要来配置瘦客户端的运行环境,例如检查本地设备是否启动、装载一些特定模块等;

    14. 接下来,/sbin/init会执行/etc/rc2.d中的命令行;

    15. /etc/rc2.d中有一个命令S20ltsp-client-core也会在客户端启动的过程中被执行;

    16. S20ltsp-client-core会解析lts.conf文件,并且使用其中的参数作为瘦客户端的环境变量;

    17. 若声音驱动也被配置了,一个守护进程pulseaudio将被启动,用来监听远程音频到本地的链接;

    18. 如果本地客户端有一些本地设备,程序ltspfsd将被启动,服务器可以通过这个程序来读取本地设备的资源,比如U盘、光驱等;

    19. 到此为止,lts.conf中有关屏幕回话的部分就会被执行完毕。什么是屏幕回话(Screen Session)?它是指你在终端上启动的虚拟屏幕,这些都是GNU/Linux定义的标准虚拟界面,从alt-F1alt-F10。通常默认情况下,命令行模式会被运行在screen 1上,ldm 模式(也就是LTSP Display Manager)会被运行在SCREEN_07上。

    20. 如果ldm模式设置成SCREEN_07,则你会看到一个GUI登陆界面,也就是X Windows系统。默认情况下,Xorg服务器会自动检测显卡,并且创建一个/ect/X11/xorg.conf文件来保存默认配置;

    21. ldm模式下,X 窗口会启动一个加密的ssh通道连接到服务器,在startx模式下,将向LTSP服务器发起一个XDMCP请求。无论哪种方式,最终在客户端显示器上会显示一个用户登陆框。

    22. 这个时候,我们就可以登陆了,成功的建立起一个回话。瘦客户端唯一的功能就是提供输入、接收服务器的输出,所有的运算执行都是跑在服务器端。

              (#@linux启动过程中,cache当作文件系统装载,initramfs就是这个功能。linux系统在ramfs的cache实现上加了一层很薄的封装,使用著名的tmpfs文件系统,这个文件系统上的数据可以写出到交换分区,而且可以设定一个tmpfs装载点的最大尺寸以免耗尽内存。initramfs实际就是tmpfs的一个应用。
优点:
(1)tmpfs随着其中数据的增减自动增减容量.
(2)在tmpfs和page cache/dentry cache之间没有重复数据.
(3)tmpfs重复利用了Linux caching的代码, 因此几乎没有增加内核尺寸, 而caching的代码已经经过良好测试, 所以tmpfs的代码质量也有保证.
(4)不需要额外的文件系统驱动.
  评论这张
 
阅读(167)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017