生命之中的最大错误在于:终日担心犯错误。— 爱尔伯特·哈伯德 (Elbert Hubbard 1856-1915),《笔记》
Jan
5
IBM的文章不错:基于网络的 Red Hat 无人值守安装
一直有看一些通过网络自动安装系统的文章,但还没有动手处理测试。
网络自动安装系统有很多好处:
1 可以同时安装很多电脑
2 可以设定自动安装
3 可以不需要本地光驱支持
细节请查看上面介绍的文章了,简单总结一下步骤:
要使用此功能,需要有支持PXE启动的网卡设备,这个是首要条件。PXE网卡启动后,会通过DHCP获取自己的IP地址,所以需要在局域网建立DHCP服务,并且可以指定加载的文件,这个需要TFTP支持,然后加载文件后,就是启动了初始环境,再选择安装方式,可以是光驱、本地硬盘、NFS、FTP、HTTP等。
DHCP的配置参考(/etc/dhcpd.conf):
这里指定了mac地址才分配IP的,可以防止局域网dhcp服务的冲突。
注意的是,如果你设置的是192.168.3.0,而你的机器不在这个网段,那dhcp服务启动会失败的,你需要绑定一个该网段的IP地址,参考《linux下一个网卡绑定多个IP》。
TFTP配置:
一直有看一些通过网络自动安装系统的文章,但还没有动手处理测试。
网络自动安装系统有很多好处:
1 可以同时安装很多电脑
2 可以设定自动安装
3 可以不需要本地光驱支持
细节请查看上面介绍的文章了,简单总结一下步骤:
要使用此功能,需要有支持PXE启动的网卡设备,这个是首要条件。PXE网卡启动后,会通过DHCP获取自己的IP地址,所以需要在局域网建立DHCP服务,并且可以指定加载的文件,这个需要TFTP支持,然后加载文件后,就是启动了初始环境,再选择安装方式,可以是光驱、本地硬盘、NFS、FTP、HTTP等。
DHCP的配置参考(/etc/dhcpd.conf):
option domain-name "mydomain";
ddns-update-style none;
max-lease-time 7200;
server-name "bootserver";
default-lease-time 600;
allow booting;
allow bootp;
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.1 192.168.3.254;
deny unknown-clients;
}
group pxe {
filename "pxelinux.0";
host testserver2 { hardware ethernet 00:0C:29:B6:3E:A0; fixed-address 192.168.3.2; }
host testserver3 { hardware ethernet 00:0C:29:5D:F9:B7; fixed-address 192.168.3.3; }
}
ddns-update-style none;
max-lease-time 7200;
server-name "bootserver";
default-lease-time 600;
allow booting;
allow bootp;
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.1 192.168.3.254;
deny unknown-clients;
}
group pxe {
filename "pxelinux.0";
host testserver2 { hardware ethernet 00:0C:29:B6:3E:A0; fixed-address 192.168.3.2; }
host testserver3 { hardware ethernet 00:0C:29:5D:F9:B7; fixed-address 192.168.3.3; }
}
这里指定了mac地址才分配IP的,可以防止局域网dhcp服务的冲突。
注意的是,如果你设置的是192.168.3.0,而你的机器不在这个网段,那dhcp服务启动会失败的,你需要绑定一个该网段的IP地址,参考《linux下一个网卡绑定多个IP》。
TFTP配置:
Jan
5
一台64位的机器出现很特殊的情况,netstat命令会产生很多的“warning, got duplicate tcp line.”
这个带来很多不方便,一般检查在服务的端口就查不到了,网上查了一下一个方法,转帖一下:
当然,这是64位机器的,32位机器升级会提示出错:
[root@localhost tgz]# rpm -Uvh net-tools-1.60-39.el4.x86_64.rpm
warning: net-tools-1.60-39.el4.x86_64.rpm: V3 DSA signature: NOKEY, key ID 443e1821
error: Failed dependencies:
libc.so.6()(64bit) is needed by net-tools-1.60-39.el4.x86_64
libc.so.6(GLIBC_2.2.5)(64bit) is needed by net-tools-1.60-39.el4.x86_64
libc.so.6(GLIBC_2.3)(64bit) is needed by net-tools-1.60-39.el4.x86_64
这个带来很多不方便,一般检查在服务的端口就查不到了,网上查了一下一个方法,转帖一下:
引用
运行netstat,出现warning, got duplicate tcp line,
[root@supersun.biz ~]# netstat -at |grep 'ESTABLI' |wc -l
warning, got duplicate tcp line.
warning, got duplicate tcp line.
解决方法,升级net-tools的版本:
http://mirror.centos.org/centos/4/os/x86_64/CentOS/RPMS/net-tools-1.60-39.el4.x86_64.rpm
[root@supersun.biz ~]# rpm -Uvh net-tools-1.60-39.el4.x86_64.rpm
warning: net-tools-1.60-39.el4.x86_64.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:net-tools ########################################### [100%]
[root@supersun.biz ~]# netstat -at |grep 'ESTABLI' |wc -l
32
错误不再出现。
[root@supersun.biz ~]# netstat -at |grep 'ESTABLI' |wc -l
warning, got duplicate tcp line.
warning, got duplicate tcp line.
解决方法,升级net-tools的版本:
http://mirror.centos.org/centos/4/os/x86_64/CentOS/RPMS/net-tools-1.60-39.el4.x86_64.rpm
[root@supersun.biz ~]# rpm -Uvh net-tools-1.60-39.el4.x86_64.rpm
warning: net-tools-1.60-39.el4.x86_64.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:net-tools ########################################### [100%]
[root@supersun.biz ~]# netstat -at |grep 'ESTABLI' |wc -l
32
错误不再出现。
当然,这是64位机器的,32位机器升级会提示出错:
[root@localhost tgz]# rpm -Uvh net-tools-1.60-39.el4.x86_64.rpm
warning: net-tools-1.60-39.el4.x86_64.rpm: V3 DSA signature: NOKEY, key ID 443e1821
error: Failed dependencies:
libc.so.6()(64bit) is needed by net-tools-1.60-39.el4.x86_64
libc.so.6(GLIBC_2.2.5)(64bit) is needed by net-tools-1.60-39.el4.x86_64
libc.so.6(GLIBC_2.3)(64bit) is needed by net-tools-1.60-39.el4.x86_64
Jan
5
其实有两个方法:
1 增加“网卡设备”
2 keepalived
第二个是最近用过keepalived知道的,应该可以绑定255个IP,不过得配置软件,如果单纯增加IP绑定,那不用这么复杂
第一个在网上就能查到:
如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。LINUX最多可以支持255个IP别名。
这个是增加设备,里面的配置和正常的配置一样的,也可以临时指定一个IP(重启后没有):
可以把这个配置永久写入 ifcfg-eth1:1 里面,然后
1 增加“网卡设备”
2 keepalived
第二个是最近用过keepalived知道的,应该可以绑定255个IP,不过得配置软件,如果单纯增加IP绑定,那不用这么复杂
第一个在网上就能查到:
引用
linux的网络设备配置文件存放在/etc/sysconfig/network-scripts里面, 对于以太网的第一个网络设备,配置文件名一般为ifcfg-eth0。如果需要为第一个网络设备多绑定一个IP地址,只需要在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,内容样例为:
其中的DEVICE为设备的名称,IPADDR为此设备的IP地址,NETMASK为子网掩码,ONBOOT 表示在系统启动时自动启动。
如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。LINUX最多可以支持255个IP别名。
DEVICE="eth0:0"
IPADDR="211.100.10.119"
NETMASK="255.255.255.0"
ONBOOT="yes"
IPADDR="211.100.10.119"
NETMASK="255.255.255.0"
ONBOOT="yes"
其中的DEVICE为设备的名称,IPADDR为此设备的IP地址,NETMASK为子网掩码,ONBOOT 表示在系统启动时自动启动。
如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。LINUX最多可以支持255个IP别名。
如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。LINUX最多可以支持255个IP别名。
这个是增加设备,里面的配置和正常的配置一样的,也可以临时指定一个IP(重启后没有):
[root@aslibra network-scripts]# ifconfig eth1:1 192.168.138.5 netmask 255.255.255.0
[root@aslibra network-scripts]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:13:72:4F:3A:62
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::213:72ff:fe4f:3a62/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:147060622 errors:0 dropped:0 overruns:0 frame:0
TX packets:181179648 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:569058738 (542.6 MiB) TX bytes:3529273321 (3.2 GiB)
Base address:0xccc0 Memory:fe4e0000-fe500000
eth1:1 Link encap:Ethernet HWaddr 00:13:72:4F:3A:62
inet addr:192.168.138.5 Bcast:192.168.138.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Base address:0xccc0 Memory:fe4e0000-fe500000
[root@aslibra network-scripts]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:13:72:4F:3A:62
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::213:72ff:fe4f:3a62/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:147060622 errors:0 dropped:0 overruns:0 frame:0
TX packets:181179648 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:569058738 (542.6 MiB) TX bytes:3529273321 (3.2 GiB)
Base address:0xccc0 Memory:fe4e0000-fe500000
eth1:1 Link encap:Ethernet HWaddr 00:13:72:4F:3A:62
inet addr:192.168.138.5 Bcast:192.168.138.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Base address:0xccc0 Memory:fe4e0000-fe500000
可以把这个配置永久写入 ifcfg-eth1:1 里面,然后
ifconfig eth1:1 up
Jan
4
Jan
1
在考虑网站的稳定性的时候,我们不妨先分析一下访问一个网站会经过什么基本内容:
1 域名(DNS服务器)
2 IP(对某个机器)
3 Web服务器
4 动态脚本引擎
5 数据库
6 存储
要使得访问正常,那就得保证这六个步骤都很正常,我们看看会有哪些不正常的情况:
1 域名
要保证域名服务器的稳定,一般而言,都会有两个以上的域名服务器,域名基本上会有一个有效期,本身DNS体系就还算稳定,当然所有DNS服务器都无法访问到了,那就没辙了。
域名的延时可以设置时间长一点,这样会使得更加稳定,设置短一点,那是方便改变IP,切换服务器。
域名可以做多个指向,产生DNS轮询,也就是基本的域名到IP的负载均衡,也可以做不同地区的访问优化,访问不同服务器。
查看域名一般可以使用nslookup,在windows和linux下都有,比如 nslookup www.sohu.com
你可以得到如下信息:
也就是说是做了别名指向到 pgcnctct07.a.sohu.com,同时指定了8个服务器IP,用户访问时会随机选择其中一个访问
一般的域名是这样的信息:
2 IP
如果域名指向具体的IP了,这个IP对应的机器坏了,那就得换IP了,这个就会有时间上的延时,上面的指定8个IP,也就是让损失减少一点,但还是不合理的,我们需要用到虚拟IP,那可以更加有效的提供服务。
keepalived是解决这个问题而诞生了,它主要的功能是两个以上的机器添加一个虚拟IP(VIP),分等级高低,高的接管此VIP后,低等级的就备用,这样就可以让两个机器稳定提供服务了。
具体可以看看keepalived的网站:http://www.keepalived.org/
3 Web服务器
web服务器就有很多选择的空间了,这里面还有不同的架构,比如前端缓存、加速、代理、负载均衡等。
缓存类的有:Squid lighttpd ncache等
加速类:varnish等
代理类:LVS apache Nginx Haproxy lighttpd等
负载均衡类:LVS 上面代理类也有此功能
我们可以看看别人服务器都用了什么软件:
[root@localhost ~]# curl -I http://www.aslibra.com
HTTP/1.1 301 Moved Permanently
Date: Thu, 01 Jan 2009 14:03:47 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
location: blog/
Connection: close
Content-Type: text/html
我的是虚拟主机,用的是apache,支持php
[root@localhost ~]# curl -I http://www.sohu.com
HTTP/1.0 200 OK
Date: Thu, 01 Jan 2009 14:01:13 GMT
Server: Apache/1.3.37 (Unix) mod_gzip/1.3.26.1a
Vary: Accept-Encoding,X-Up-Calling-Line-id,X-Source-ID,X-Up-Bearer-Type
Cache-Control: max-age=70
Expires: Thu, 01 Jan 2009 14:02:23 GMT
Last-Modified: Thu, 01 Jan 2009 14:00:14 GMT
Content-Type: text/html
Age: 24
Content-Length: 215936
X-Cache: HIT from 19709676.29867817.28603015.sohu.com
Via: 1.0 19709676.29867817.28603015.sohu.com:80 (squid/2.6.STABLE12)
Connection: close
sohu的服务器是apache,编译了gzip支持,不肯定是否PHP
前端加了缓存,有X-Cache标记,看Via标签知道是Squid
4 动态脚本引擎
这里动态脚本比较多,我也就知道php的了
PHP如果用在apache的模块上,很多时候都说占用资源比较大,而且这样apache性能不好
不妨可以试试fast-cgi方式,比较灵活,支持不同的web服务器,比如lighttpd和nginx
还支持负载均衡,可以用几个服务器做后端
5 数据库
数据库的稳定性也可以参考前面的VIP的解决方式,但要解决 主主同步的问题,这个我没测试过,还不好说
一般都可以做一个主备同步,这个很好做,做了主备同步后,一来有备份服务器,二来可以把只读操作放在slave服务器上,增加安全性和稳定性
Mysql同步和主从设置
6 存储
存储方面我还没有真正处理,但从单机考虑,可以有磁盘阵列和冗余校正应该就不错
对于存储的集群,也有很多解决方案,比如GFS、Mogile等解决方案,可以架设多个服务器做存储,方便空间扩展和存储稳定
以上步骤还有待日后再修正和完善
1 域名(DNS服务器)
2 IP(对某个机器)
3 Web服务器
4 动态脚本引擎
5 数据库
6 存储
要使得访问正常,那就得保证这六个步骤都很正常,我们看看会有哪些不正常的情况:
1 域名
要保证域名服务器的稳定,一般而言,都会有两个以上的域名服务器,域名基本上会有一个有效期,本身DNS体系就还算稳定,当然所有DNS服务器都无法访问到了,那就没辙了。
域名的延时可以设置时间长一点,这样会使得更加稳定,设置短一点,那是方便改变IP,切换服务器。
域名可以做多个指向,产生DNS轮询,也就是基本的域名到IP的负载均衡,也可以做不同地区的访问优化,访问不同服务器。
查看域名一般可以使用nslookup,在windows和linux下都有,比如 nslookup www.sohu.com
你可以得到如下信息:
引用
Name: pgcnctct07.a.sohu.com
Addresses: 61.135.179.184, 61.135.179.190, 61.135.179.191, 61.135.179.146
61.135.179.155, 61.135.179.160, 61.135.179.161, 61.135.179.166
Aliases: www.sohu.com, d7.a.sohu.com
Addresses: 61.135.179.184, 61.135.179.190, 61.135.179.191, 61.135.179.146
61.135.179.155, 61.135.179.160, 61.135.179.161, 61.135.179.166
Aliases: www.sohu.com, d7.a.sohu.com
也就是说是做了别名指向到 pgcnctct07.a.sohu.com,同时指定了8个服务器IP,用户访问时会随机选择其中一个访问
一般的域名是这样的信息:
引用
[root@localhost ~]# nslookup www.aslibra.com
Server: 202.106.0.20
Address: 202.106.0.20#53
Non-authoritative answer:
Name: www.aslibra.com
Address: 222.76.215.25
Server: 202.106.0.20
Address: 202.106.0.20#53
Non-authoritative answer:
Name: www.aslibra.com
Address: 222.76.215.25
2 IP
如果域名指向具体的IP了,这个IP对应的机器坏了,那就得换IP了,这个就会有时间上的延时,上面的指定8个IP,也就是让损失减少一点,但还是不合理的,我们需要用到虚拟IP,那可以更加有效的提供服务。
keepalived是解决这个问题而诞生了,它主要的功能是两个以上的机器添加一个虚拟IP(VIP),分等级高低,高的接管此VIP后,低等级的就备用,这样就可以让两个机器稳定提供服务了。
具体可以看看keepalived的网站:http://www.keepalived.org/
3 Web服务器
web服务器就有很多选择的空间了,这里面还有不同的架构,比如前端缓存、加速、代理、负载均衡等。
缓存类的有:Squid lighttpd ncache等
加速类:varnish等
代理类:LVS apache Nginx Haproxy lighttpd等
负载均衡类:LVS 上面代理类也有此功能
我们可以看看别人服务器都用了什么软件:
[root@localhost ~]# curl -I http://www.aslibra.com
HTTP/1.1 301 Moved Permanently
Date: Thu, 01 Jan 2009 14:03:47 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
location: blog/
Connection: close
Content-Type: text/html
我的是虚拟主机,用的是apache,支持php
[root@localhost ~]# curl -I http://www.sohu.com
HTTP/1.0 200 OK
Date: Thu, 01 Jan 2009 14:01:13 GMT
Server: Apache/1.3.37 (Unix) mod_gzip/1.3.26.1a
Vary: Accept-Encoding,X-Up-Calling-Line-id,X-Source-ID,X-Up-Bearer-Type
Cache-Control: max-age=70
Expires: Thu, 01 Jan 2009 14:02:23 GMT
Last-Modified: Thu, 01 Jan 2009 14:00:14 GMT
Content-Type: text/html
Age: 24
Content-Length: 215936
X-Cache: HIT from 19709676.29867817.28603015.sohu.com
Via: 1.0 19709676.29867817.28603015.sohu.com:80 (squid/2.6.STABLE12)
Connection: close
sohu的服务器是apache,编译了gzip支持,不肯定是否PHP
前端加了缓存,有X-Cache标记,看Via标签知道是Squid
4 动态脚本引擎
这里动态脚本比较多,我也就知道php的了
PHP如果用在apache的模块上,很多时候都说占用资源比较大,而且这样apache性能不好
不妨可以试试fast-cgi方式,比较灵活,支持不同的web服务器,比如lighttpd和nginx
还支持负载均衡,可以用几个服务器做后端
5 数据库
数据库的稳定性也可以参考前面的VIP的解决方式,但要解决 主主同步的问题,这个我没测试过,还不好说
一般都可以做一个主备同步,这个很好做,做了主备同步后,一来有备份服务器,二来可以把只读操作放在slave服务器上,增加安全性和稳定性
Mysql同步和主从设置
6 存储
存储方面我还没有真正处理,但从单机考虑,可以有磁盘阵列和冗余校正应该就不错
对于存储的集群,也有很多解决方案,比如GFS、Mogile等解决方案,可以架设多个服务器做存储,方便空间扩展和存储稳定
以上步骤还有待日后再修正和完善
Jan
1
上升星座即是你出生时,东方地平线与黄道交界处升起的第一个星座。上升星座是我们的的外在表现,是外界所觉知到的你。因此由上升星座也可得知你表达自我的方式。
通常一个人的太阳及上升星座都不会一样,而这就是我们之所以称上升星座为我们的“人格面具”。大部分时候,我们的太阳是隐藏在上升星座背后的。
在为期二十四小时的每一天中,十二星座依序从地平面升起,因此我们可得知,每个上升星座更替的时间约为两个小时。另外,你的太阳星座就是你出生当天日出时升起的星座。也就是说,唯有日出时分出生的人方是太阳星座与上升星座相同的幸运儿,这种人的外在表现与内在本质是相符合的。
上升星座会影响一个人持有某种特定想法,认为要怎么表现才能被人所接受。由于上升星座也是每个人星盘中的第一宫,意味著我们的童年环境,因此我们可以得知上升星座(也就是自我期许)是当我们还小的时候,父母给予肯定、鼓励我们表现出来的。
上升星座所透露的不只是我们言谈、行为的模式,我们的穿著、发型、外表等等皆受其影响。
通常一个人的太阳及上升星座都不会一样,而这就是我们之所以称上升星座为我们的“人格面具”。大部分时候,我们的太阳是隐藏在上升星座背后的。
在为期二十四小时的每一天中,十二星座依序从地平面升起,因此我们可得知,每个上升星座更替的时间约为两个小时。另外,你的太阳星座就是你出生当天日出时升起的星座。也就是说,唯有日出时分出生的人方是太阳星座与上升星座相同的幸运儿,这种人的外在表现与内在本质是相符合的。
上升星座会影响一个人持有某种特定想法,认为要怎么表现才能被人所接受。由于上升星座也是每个人星盘中的第一宫,意味著我们的童年环境,因此我们可以得知上升星座(也就是自我期许)是当我们还小的时候,父母给予肯定、鼓励我们表现出来的。
上升星座所透露的不只是我们言谈、行为的模式,我们的穿著、发型、外表等等皆受其影响。







