标签 服务器 下的文章

无盘启动意味着一台客户端电脑在启动操作系统时没有任何的磁盘存储介质。在这种情形之下,电脑能够通过网络从远程NFS服务器上加载内核和根文件系统。在这过程中可能会用到多种不同的方法来从NFS服务器上加载内核和根文件系统:RARP,BOOTP或是DHCP协议。在这个指导教程中,我会使用BOOTP/DHCP协议,因为它们能够被大多数的网卡所支持。

无盘计算机的优势

想象一下你的办公室内有30台电脑,每一台都需要使用相同的应用程序。如果你作为管理这些电脑的管理员,你会怎么做?如果你在每一台电脑上安装应用程序,那只是在浪费你的时间。另一方面来说,一套无盘系统就能解决你的问题。有了一套无盘系统,你只需在中央NFS服务器上安装需要的程序,然后通过网络启动这30台客户机即可。

需要什么

两台或更多的装备有支持DHCP协议的网卡的Linux电脑。这些将扮演NFS服务器角色的电脑应当配有硬盘,其它客户机不需要任何的硬盘。服务器和客户机需要连接到同一个本地网络之内。

设置一个无盘系统共需要五步。

  1. 安装所需的包
  2. 配置TFTP服务器
  3. 配置DHCP服务器
  4. 配置NFS服务器
  5. 启动无盘客户机

在这个指导教程中,我假设作为启动服务器的电脑运行的是 Ubuntu。如何你正在使用其它的Linux发行版,原理是一样的。

第一步:安装所需的包

像下面这样使用 apt-get 命令来安装所有需要的包。

$ sudo apt-get install dhcp3-server tftpd-hpa syslinux nfs-kernel-server initramfs-tools

第二步:配置TFTP服务器

TFTP服务器是一个小型FTP服务器,需要用它来在本地网络中的客户机和服务器之间自动传输启动文件。

向/etc/default/tftpd-hpa中添加以下行:

RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot/"

接着,创建一个启动文件夹。

$ sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg

复制引导程序镜像。

$ sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot

像下面这样创建一个默认启动配置文件。

$ sudo vi /tftpboot/pxelinux.cfg/default

LABEL Ubuntu
KERNEL vmlinuz
APPEND root=/dev/nfs initrd=initrd.img nfsroot=10.10.101.1:/nfsroot ip=dhcp rw

注意:

  • "root=/dev/nfs"表示服务器上的网络文件系统(不需要修改)。
  • "initrd=initrd.img"是一个用于系统启动的启动脚本。
  • "nfsroot=10.10.101.1/nfsroot"指明了服务器的IP地址以及NFS共享文件夹的名称。用你的服务器地址来替换掉IP地址。
  • "ip=dhcp"表示客户端电脑使用DHCP寻址方案。
  • "rw"表示NFS共享是可读/可写的。

最后,重启TFTPD服务。

sudo /etc/init.d/tftpd-hpa restart

第三步:配置DHCP服务

你还需要在NFS服务器上配置DHCP服务来允许使用/var/lib/tftpboot/pxelinux.0启动。假设你在使用10.10.101.0作为子网,你的配置可能看起来像下面这样子。

$ sudo vi /etc/dhcp3/dhcpd.conf

allow booting;
allow bootp;

subnet 10.10.101.0 netmask 255.255.255.0 {
    range 10.10.101.2 10.10.101.254;
    option broadcast-address 10.10.101.255;
    option routers 10.10.101.1;
    filename "/pxelinux.0";
}

然后重启DHCP服务。

$ sudo service isc-dhcp-server restart

第四步:配置NFS服务器

创建一个保存客户机根文件系统目录的文件夹。

$ sudo mkdir /nfsroot

接着,设置NFS服务器导出客户机根文件系统。向/etc/exports添加以下行来实现。

/nfsroot             *(rw,no_root_squash,async,insecure,no_subtree_check)

运行下列命令来重新载入修改过的/etc/exports。

$ sudo exportfs -rv

默认情况下,Ubuntu在initrd镜像中不提供网络启动支持。因此你需要创建一个新的initrd.img文件。首先添加下列行到/etc/initramfs-tools/initramfs.conf中。

BOOT=nfs
MODULES=netboot

然后运行下列命令来创建一个新的initrd.img。

$ sudo mkinitramfs -o /var/lib/tftpboot/initrd.img

将新的内核镜像文件复制到/var/lib/tftpboot中。

$ sudo cp /boot/vmlinuz-`uname -r` /var/lib/tfftpboot/vmlinuz

是时候将整个根文件系统拷贝到/nfsroot中了。

假设您使用的是一个全新的Ubuntu服务器安装,你只需将文件系统拷贝到NFS的根之中。

$ sudo cp -ax / /nfsroot

然后通过文本编辑器打开/nfsroot/etc/fstab 并添加以下行。

/dev/nfs       /               nfs    defaults          1       1

文件夹/var/lib/tftpboot应拥有全局读写权限。否则客户机无法从网络启动。

$ sudo chmod -R 777 /var/lib/tfftpboot

最后,为了避免任何服务器设置出现错误,我推荐对运行DHCP服务的网卡使用静态IP。举个例子,如果网卡名为eth0,你的/etc/network/interfaces中的配置应该看起来像这样:

iface eth0 inet static
    address 10.10.101.1
    netmask 255.255.255.0
    broadcast 10.10.101.255
    network 10.10.101.0

第五步:启动无盘客户机

在您完成了服务器上的配置之后,从网络启动你的客户机。要从网络启动一般你只需修改BIOS设置中的启动优先顺序即可。

如果客户机启动成功,您的无盘环境就配置好了。无需做任何修改就可以任意添加一台或多台客户端电脑。


via: http://xmodulo.com/2014/06/diskless-boot-linux-machine.html

译者:alim0x 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

电信常用DNS:

地区DNS服务器1DNS服务器2
安徽202.102.192.68202.102.199.68
澳门202.175.3.8202.175.3.3
北京202.96.199.133202.96.0.133
重庆61.128.128.6861.128.192.68
福建202.101.115.55218.85.157.99
甘肃202.100.64.6861.178.0.93
广东202.96.128.86202.96.128.166
广西202.103.224.68202.103.225.68
贵州202.98.192.67202.98.198.167
海南202.100.192.68202.100.199.8
河北219.150.32.132222.222.222.222
黑龙江219.150.32.132219.146.0.130
河南219.150.150.150222.88.88.88
湖北202.103.0.68202.103.24.68
湖南202.103.96.112202.103.96.68
江苏61.177.7.161.147.37.1
江西202.101.224.68202.101.226.69
内蒙古219.150.32.132219.146.0.130
宁夏202.100.96.68222.75.152.129
青海202.100.128.68
山东219.146.0.130
上海202.96.209.5202.96.209.133
陕西218.30.19.4061.134.1.4
四川61.139.2.69202.98.96.68
台湾168.95.1.1168.95.192.1
天津202.99.104.68
香港205.252.144.126218.102.62.71
新疆61.128.114.16661.128.114.133
云南222.172.200.6861.166.150.123
浙江60.191.244.5202.96.113.34

网通/联通常用DNS:

地区DNS服务器1DNS服务器2
安徽218.104.78.2
北京210.106.0.20202.106.196.115
广东221.4.66.66210.21.4.130
广西221.7.136.68221.7.128.68
河北202.99.160.68202.99.166.4
黑龙江202.97.224.68202.97.224.69
河南202.102.224.68202.102.227.68
湖北218.104.111.112218.104.111.114
湖南58.20.127.17058.20.57.4
江苏221.6.4.66221.6.96.177
江西220.248.192.12220.248.192.13
吉林202.98.0.68202.98.5.68
辽宁202.96.69.38202.96.64.68
内蒙古202.99.224.8202.99.224.67
山东202.102.152.3202.102.134.68
上海210.22.70.3210.22.84.3
山西202.99.192.66202.99.192.68
四川221.10.251.196119.6.6.6
天津202.99.96.68202.99.64.69
云南221.3.131.9221.3.131.10
浙江221.12.1.228221.12.33.228

这次发布的Ubuntu 14.04,代号Trusty Tahr(值得信赖的塔尔羊),将会给服务器版用户带来新的自动化,虚拟化和存储相关特性。

Ubuntu 14.04, 是由Canonical推出的基于Linux的开源操作系统最新版本,没有为PC和移动用户带来太大改动,对他们来说仅仅是较少的更新。而对服务器用户,这次最新的最重大的Ubuntu版本更新带来了更多功能,特别在自动化,云计算,以及虚拟化等方面。

对桌面和移动用户来说,这次即将在4月17日正式露面的Ubuntu14.04的最重大的改动是,它带来了AppArmor安全系统的更新。这个在桌面/移动版本中最重要的新特性,是一个运行在后台的内核强化包,那些在个人电脑,手机或者平板上使用Ubuntu的人们在Ubuntu 14.04版本中也许根本感觉不到什么大的改动。

然而,在服务器世界里,最新版的Ubuntu带来了更实质性的改动。特别是,它将Puppet升级到了第3版,Puppet是一个用来自动化IT基础设施管理的开源平台。这是个重要的更新,能够为部署大型Ubuntu服务器网络的人们带来便利(不过是在他们解决好Puppet早期版本和最新版之间的兼容性问题之后,新旧版本之间并不互相完全兼容)。

Ubuntu 14.04还将带来开源的虚拟化管理程序Xen的4.4版本。这次改动,对于旧版的Xen部署环境也需要做一些必要的调整,才可以切换到新版本上。不过,它提供了更多的新特性,而且可以协助管理Ubuntu服务器上虚拟环境的多样性,包括众多的虚拟化管理程序,VMware (VMW),KVM,Xen等等。

最后,Ubuntu 14.04的内核基于Linux 3.13,也带来了比如更好的固态硬盘(SSD)性能等新特性。这也是很受服务器用户欢迎的,特别是那些在云和大数据领域里对性能有很高要求的用户。

这次的Ubuntu 14.04是一个长期支持(LTS)版本,这也是服务器用户最有可能长期使用于生产环境的版本,而非LTS版本对于实际生产环境来说没有任何意义。尽管Canonical持续地集中精力于在PC和移动设备上"统一"的努力,这次Ubuntu带来的自动化,虚拟化和存储软件的更新在合适的时间点推出,有利于维持Ubuntu在服务器市场的竞争力。


via: http://thevarguy.com/servers/041514/ubuntu-1404-server-brings-virtualization-automation-storage-updates

译者:zpl1025 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在我的上一篇文章中讲过如何做一个高可用系统:两个树莓派布署上 GlusterFS 集群文件系统,就变成一个容错文件服务器了。在这篇文章中我们会基于这个高可用系统构建另一个容错服务:建立一个简单的 Web 服务器集群。

可能你没有看过我的上一篇文章,那我就在这里简单回顾一下上次的内容。我有两个树莓派:Pi1 和 Pi2。Pi1 的 IP 地址为 192.168.0.121,Pi2 的 IP 地址为 192.168.0.122。我把它们组合成为 GlusterFS 集群系统,共享一个存储卷,卷名为 gv0。并且这个 gv0 被挂载在两个树莓派上,挂载点都是 /mnt/gluster1,这样一来,两个树莓派能同时访问到这个共享卷。最后我测试了下系统的容错性,将共享卷挂载到第三个物理机上,并执行共享卷上的一个简单的脚本:打印系统时间并输出到 gv0 上的一个文件内,然后轮着关掉两台树莓派,检测这个冗余系统是否还能用。

现在我手上有这个经过检验的存储系统,我要做的是把这个系统做成有容错功能的 Web 服务器集群。树莓派的 CPU 处理速度和内存资源都不是很高,好在对付一个静态 Web 服务器已经是绰绰有余了。我故意把这个例子做得非常简单,因为我觉得如果你能摆平这个简单的例子,你也能处理复杂一点的问题了。

安装 Nginx

虽然我也比较喜欢 Apache,但在资源有限的情况下,像 Nginx 这样功能全、性能高、资源占用少的 Web 服务器是比较理想的选择。在 Raspbian 的默认源中存在 Nginx,所以我只要登入一台树莓派并且输入以下命令:

$ sudo apt-get update
$ sudo apt-get install nginx

Nginx 安装好后,创建配置文件 /mnt/gluster1/cluster ,内容如下:

server {
  root /mnt/gluster1/www;
  index index.html index.htm;
  server_name twopir twopir.example.com;

  location / {
        try_files $uri $uri/ /index.html;
  }
}

注意:我这里把服务器命名为“twopir”,你可以根据自己爱好命名你的网站。另外我把 Web 服务器的根目录设置为 /mng/gluster1/www。这样,我就能把我的静态文件放在这个共享存储系统内,从而让两个树莓派主机都访问到它们。

现在删除默认的 Nginx 配置文件,将上面配好的配置文件作为 Nginx 的配置文件。在 Debian 系统中,Nginx 将它的配置文件像 Apache 一样放在 sites-available 和 site-enabled 两个目录下面。虚拟主机配置文档放在 sites-available 中,而 sites-enabled 目录包含了你想生效的配置文件的软链接。

$ cd /etc/nginx/sites-available
$ sudo ln -s /mnt/gluster1/cluster .
$ cd /etc/nginx/sites-enabled
$ sudo rm default
$ sudo ln -s /etc/nginx/sites-available/cluster .

现在我已经放好了配置文件,但系统还不存在上面所说的 Web 服务器根目录。下一步就是创建目录 /mnt/gluster1/www,并复制 index.html 文件进去。当然你也可以建立自己定义的 index.html 文件,但先复制一个已有的文件是个不错的选择:

$ sudo mkdir /mnt/gluster1/www
$ cp /usr/share/nginx/www/index.html /mnt/gluster1/www

重启 Nginx 服务:

$ sudo /etc/init.d/nginx restart

现在去 DNS 服务器为192.168.0.121的树莓派配置记录。你可以根据自己的情况配置你自己的域名和 IP 地址。现在在浏览器上输入 http://twopir/ 然后出现默认的 Nginx 首页。如果你查看下 /var/log/nginx/access.log 文件,你可以看到点击网页留下的记录。

Nginx 能正常工作后,配置第二个树莓派。因为我们已经将配置文件都放在 GlusterFS 共享目录下,我们现在要做的只是安装 Nginx,创建相关的软链接,重启 Nginx:

$ sudo apt-get update
$ sudo apt-get install nginx
$ cd /etc/nginx/sites-available
$ sudo ln -s /mnt/gluster1/cluster .
$ cd /etc/nginx/sites-enabled
$ sudo rm default
$ sudo ln -s /etc/nginx/sites-available/cluster .
$ sudo /etc/init.d/nginx restart

DNS 服务器上配置两条 A 记录

现在两个主机共享同一份文件,下一步是设置冗余系统的关键步骤。虽然你完全可以设置一个类似心跳的服务用于轮询检测哪个树莓派的 Web 服务是开启的,但这里有个更好的方法:给同一个主机名指定两个 DNS 的 A 记录,分别指向你的两个树莓派(译注:A 记录就是将域名转化为 IP 地址的记录,DNS 包含很多记录方式,如 A 记录、PTR 记录、MX 记录等等),这就是传说中的 DNS 负载均衡,DNS 访问主机时,如果主机名对应多个 IP 地址,DNS 会随机返回这些 IP 地址的顺序:

$ dig twopir.example.com A +short
192.168.0.121
192.168.0.122
$ dig twopir.example.com A +short
192.168.0.122
192.168.0.121

因为返回随机的顺序,用户可以均匀地往两台服务器发送请求,这个负载均衡的机制就是由 DNS 服务器的多条 A 记录来提供。相对于 DNS 的负载均衡技术,我更感兴趣的是 Web 浏览器如何处理请求失败的情况。当浏览器通过网页主机获得两条 A 记录,并且第一条记录所在的主机当机了,浏览器几乎立刻就切到另一条记录上。切换效率快到用户根本察觉不出来,这可比传统的心跳线轮循请求主机快多了。

所以在你正在使用的 DNS 服务器上添加你的树莓派集群的两个 IP 地址,然后试试 dig 命令,就像我在上面使用过的一样,你也应该能得到两个 IP 地址。

当你为同一个域名设置好了两个 A 记录,这套集群就可以提供容错服务了。打开两个终端并分别登录到两个树莓派,运行 tail -f /var/log/ngnix/access.log 命令,你可以监视 Web 服务器的访问情况。当你通过浏览器访问网页时,你可以看到在一台树莓派上产生了访问日志,而在另外一台的日志里什么也没有出现。现在你可以刷新几次页面,当你觉得你对能成功访问到 Web 服务器感到满意了,你可以重启响应你请求的那台树莓派,然后再刷新几次页面。也许浏览器上会出现一个短暂的不可访问信号,但会马上重定向到第二台树莓派上,你会看到一样的页面,并且你能通过终端访问日志了解具体情况。当第一台树莓派启动后,你在浏览器上根本不会察觉到。

(译注:如何处理DNS 轮询的多个IP地址,不同浏览器有不同的做法,目前译者收集到的资料显示,只有mozilla的netlib库支持自动重连下一个IP地址的做法。如果读者知道更多的浏览器对DNS轮询的处理策略,请评论给我们。其实,以译者的态度看,DNS轮询根本就不能算作是高可用性的方案,勉强可以算作是负载均衡方案,建议考虑更可靠的其它方案。)

随机重启一台树莓派,只要有一台在线,Web 服务器就能提供服务。这是一个非常简单的案例,你可以把你其它的静态文件放到 /mnt/gluster1/www 上,为你提供真正有价值的服务,现在好好享受你的低成本容错集群 Web 服务器吧。


via: http://www.linuxjournal.com/content/two-pi-r-2-web-servers

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

我们已经读了很多教程和看了很多视频了,你现在是一名Linux高级用户了。好的,恭喜你。但是还有一些需要学习!下面一些命令在你成为全能的管理员时会派上用场!

  1. ifconfig: 在修改内核中已有的网络接口时,你会用到ifconfig命令。这个命令通常用于系统调校和调试,但同时也可以用于在启动过程中设置接口。
  2. netstat: 对于Linux用户来说这是一个用于显示网络相关信息的高级命令。它包括路由表、网络连接、伪装连接、接口统计等丰富信息。
  3. nslookup: 在你需要找出关于网络服务的信息时可以用到这个命令。它能帮你找到用于查询DNS域的名称服务器信息。
  4. dig: dig工具用于请求DNS域名服务器。如果你要找出主机地址、邮件交换、名称服务器和其他相关信息,那么这个工具就是最佳选择。你可以在Linux和Mac OS X操作系统上使用这个命令。
  5. uptime: uptime命令用于验证服务器在无人照看下发生了什么。当你需要坐在服务器前查找错误的时候,这个命令尤其有用。
  6. wall: 这个命令用于给所有已登录的用户发送消息。你可以只给那些消息权限设置成了'是'的用户发消息。消息是作为wall命令的参数给出的。
  7. mesg: 用户可以使用'write'命令给你发送消息。但是作为服务器管理员,你可以使用mesg命令来决定他们是否能够使用write命令。你可以选择'n'和'y',分别用于控制在屏幕上不弹出或者弹出消息。
  8. write: 如果对于一个用户的'mesg'命令的状态设置为'y',那么write命令就允许你发送消息给那个用户。
  9. talk: 当上面所说的“消息”不够用时,使用talk命令与登陆的用户进行“会话”。
  10. w: 这个命令是uptime和who命令的结合,其显示结果就好像连续先后执行了这两个命令一样。
  11. rename:当你需要重命名特定的文件时,rename命令会派上用场。这个命令可以通过匹配替换来为多个文件批量重命名。
  12. top:这个命令可以显示运行在CPU上的进程。命令会自动刷新并持续显示进程直到你使用中断命令停止它。

via: http://www.efytimes.com/e1/fullnews.asp?edid=125990

译者:geekpi 校对:Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出

国际数据公司(IDC)的分析师在周三投寄了一篇新闻稿凸显出IBM 的 AIX 系统和 P-系列的硬件持有量已经快速下降。伴随着专有 Unix 系统下跌的同时,相关的运行着 Linux 系统的 X86 服务器销量却在崛起。IBM 已经明确指出这是一个长期趋势,所以投资了10亿美元用在基于 Power 系统的 Linux 开发。与新闻报道的 AIX 20%销售额下降的同时,我的这篇文章终于发布出来了。

过去数年中,我在管理 AIX 和 Linux 系统上一点都不顺利,如果能让我挑选的话,会选择灵活性和易用性更好的 Linux 系统和稳定性更高的 Power 机器。根据我的经验, AIX 很难设置,在设置好后要变动也很困难,但一旦设置好并启动起来,它就会一直很好的运行下去。一台配置合适的 AIX 服务器可以正常运行数年而无需干预,但是需要修改配置的时候,并且经常需要修改配置,就准备好长期的艰苦跋涉吧。相比之下,经过这么多年来,成千上万的开发人员和系统管理员,以及大牌公司的贡献,使得Linux更易于管理。根据Infoworld报道:

Linux服务器市场正在健步崛起,服务器总销量占总收入的百分比高达28%,所以任何可以提高市场占有率的投资,将会非常有价值,即使大部分份额的Linux服务器仍然是商用 x86 硬件。

Intel 和 AMD 的硬件也现跨越式发展,正在缩小与 Power 机器的性能差距。当我听到一个新的刀片上配置 10GB 的以太网卡已经成为标准、256GB 的 RAM 已经很正常了,以及普通业务需要订购装有 16 核 CPU 的服务器已经成为常态时,吃惊不小。Intel 服务器和 IBM 的 Power 服务器性能差不多,但价格低很多。因为企业的关注点在于是否逃脱“顾问软件”及 IBM 的供应商锁定,所以在行业标准的x86硬件上运行的开源软件正变得越来越有吸引力。不过,IBM已经降低了 Power 系列机器的价格来保持竞争力。

这说明, IBM 选择投入在基于 Power 机器的 Linux 系统而不是 AIX 系统。 IBM 可能已经开发出现代版的 AIX,并使用通用的开源工具以使交互操作性更好。尽管 IBM 声明 AIX 仍然是重要的,但在 Power 机器的销售额持续下降,伴随的是 Linux 方面的投入,这一切的一切都正在翻开新故事的新篇章。

IBM 不可能一切都以 AIX 为核心,但他们可能会无限期的延长其使用寿命。如果 AIX 做为开源系统发布,看看市场的反映,将会十分精彩。


via: http://ostatic.com/blog/proprietary-unix-continues-to-fall

译者:runningwater 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出