2007年06月06日

晕头转向地学习,无有自己的目标,只是不想空闲地浪费,这已经注定了学习的效果和过程都是难以估量的。但功利的学习,又会担心迎来一次又一次学习而无用的结果,而不再想努力。
不过这样的学习只是为学习而学习了,不能称为努力(忽然觉得努力是应该有一个目标,而付出)。
这样个时候,静下心来想想究竟要寻求些什么,自己又能为别人带来些什么,无有实力,两者都不可能实现。
这个时候,需要的是一种积累!

2007年02月02日

今天看到“老白说真话”的一个招聘,说对系统工程师的一些要求,我也在这儿自我检查一下了。

Advanced System Engineer

职位:高级系统工程师(3人)

职位描述:
1.保证公司webapps系统的正常运行、安全、稳定服务提供技术支撑。
2.负责各类服务器的软硬件的配置安装和维护管理。
3.Server端系统的数据保护,容量规划,实施调整和监控及灾难恢复、服务器的性能监控与优化,配置安全策略
3.为相关接口部门提供技术技持。
4.进行各项新应用的系统、网络测试工作
5.提供服务监控和常规系统健康检查。

任职要求:
1.有3年以上主流UNIX、Linux系统和Windows系统管理、网络管理及相关网络应用的跨平台部署为佳
2.熟悉LINUX服务器网络、安全和web环境规划、配置及调优工作;
3.精通IIS、Apache、MySQL、Squid、Iptables、LVM、LVS、Bind等配置管理 ,熟悉CDN、GSLB架构
4. 了解主流数据库MSSQL2000/2005、Mysql、Oracle安装、配置、调优,熟悉Mysql HA架构、Mysql Cluster及熟悉MSSQL Snapshot、Replication、熟悉DB底层存储架构及不同存储引擎之间的应用和索引碎片处理
5.熟悉unix、linux下防火墙、路由等应用服务的配置、管理;
6.熟悉shell编程;
7.有较强的安全意识,有Linux内核tuning & hacking经验为佳,有一定的系统、网络安全防范、备份和监控经验。
8.有大型网络(ISP网络)设计管理经验为佳
9.对技术文档编写规范有一定了解,能阅读英文技术文档;
10.高度的工作责认心,工作认真、细心、 虚心好学、沟通能力强;

联系人:longrujun@gmail.com


Squid
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

Squid将数据元缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid 支持SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。

Squid由一个主要的服务程序squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当 Squid启动以后,它可以派生出预先指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减 少了服务器等待DNS查询的时间。

iptables--静态防火墙

iptables是复杂的,它集成到linux内核中。用户通过iptables,可以对进出你的计算机的数据包进行过滤。通过iptables命令设置你的规则,来把守你的计算机网络——哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录(log)。

LVM
一份非常内行的Linux LVM HOWTO

1. 绪论
欢迎你,亲爱的读者。
写这个文档的目的是为了告诉你什么是LVM,它怎样工作,你怎样运用它使你的生活变得更容易。虽然有一份LVM FAQ,但仍是德文的,它是从不同的角度来描写的。它是一份“真的”HOWTO,在传授理解(有希望的)的时候也是非常内行的。
我要说清楚我不是一个Linux逻辑卷管理器(Logical Volume Manager)的作者。我向那些作者表示敬意,同时我希望能和他们合作。
不可思议的是我甚至不知道LVM的开发者。我希望这种情况不久会改变。我事先向他们表示道歉。
1.1 免责声明 & 许可
分发这个文档是希望它对你有用,但是不提供任何担保,也没有销售或适应特殊目的的隐含担保。
如果你的磁盘融化了,你公司解雇了你–这决不是我们的错。对不起。请记得经常做备份,在没有重要数据的系统上做实验。
此外,Richard Allen不代表他老板说话。
Linux是Linus Torvalds的注册商标。
英文原文(若翻译有误,以原文为准)
This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If your disks melt and your company fires you – its never our fault. Sorry. Make frequent backups and do your experiments on non-mission critical systems.
Furthermore, Richard Allen does not speak for his employer.
Linux is a registered trademark of Linus Torvalds.
1.2 预备知识
不是太多。如果你曾经安装过Linux和创建过文件系统(fdisk/mkfs),那你就准备就绪了。但因为总是以root身份操作,所以一定要小心谨慎!错误的命令或操作设备文件都可能损坏已经存在的数据。
如果你知道怎样配置HP/UX LVM,那你几乎都完成了,Linux工作得很象HP上的处理。
1.3 注意事项
关于这份文档有几点需要注释。虽然我写了大部分,但我真的不希望它停步。我坚决相信Open Source,我鼓励你反馈、更新、打补丁等等。不要不愿意告诉我们有关排版或普通的老错误。
如果你感觉你更有资格来维护一部分,或者你认为你能创作和维护一个新的部分,欢迎你。这个HOWTO的SGML格式是通过CVS可用的。我预想这会是个合作计划。
这份文档里,你会发现许多FIXME的通知。补丁总是欢迎的!无论你在哪里发现FIXME,你都要明白你正踩在未知的领域。这不是说其他地方没有错误,而是说这里是要特别注意的地方。如果你已经验证了什么,请告诉我,我好删除这FIXME通知。
1.4 访问,CVS & 更新
这份HOWTO的规范定位在 这里。
我们现在有匿名的CVS访问,对全世界普遍有效。这使你更容易获得最新版的HOWTO,并提供改变和增强。
如果你想通过CVS获得这份HOWTO,下面教你怎样做:
$ export CVSROOT=:pserver:anon@outpost.ds9a.nl:/var/cvsroot
$ cvs login
CVS password: [enter cvs (without s)]
$ cvs co lvm-howto
cvs server: Updating lvm-howto
U lvm-howto/lvm-howto.sgml
如果你发现错误,或者想增加什么,本地修复它,并运行“cvs diff -u”,同时将结果发给我们。
提供了一个Makefile文件来帮助你创建postscript,dvi,pdf,html 和 plain text格式。你可能需要安装sgml-tools,ghostscript 和 tetex 以获得所有格式。
1.5 这份文档的编排
我们将首先解释一些需要的基本知识。我们尽量设法包括例子来帮助理解。
2. 什么是LVM?
传统上,一个分区大小是静态的。这要求一个系统安装人员必须考虑的不是“我要在这个分区上存储多少数据”,而是“我‘究竟’要在这个分区上存储多 少数据”。当一个用户在这个分区上没有空间了,他要么不得不重新分区(这可能要求整个操作系统重装),要么象符号连接一样使用组装机。
一个分区就是物理磁盘上一系列连续数据块的概念已经演变了。多数类Unix系统现在有能力分解物理磁盘到许多单元。多个驱动器上的存储单元可以汇聚成一个“逻辑卷”,它们可以分配给分区。另外,单元可以随着空间要求的改变而从分区中添加和删除。
这就是基本的逻辑卷管理器(LVM)
例如,假设你有一个1GB的磁盘,并且创建“/home”分区花了600MB。设想你没有空间了,于是决定“/home”需要1GB。用传统的分区观念,你不得不有另外一个至少1GB大小的驱动器。接着增加这个磁盘,创建新的/home,并且将现有的数据拷贝过去。
然而,用LVM配置,你仅仅只需要增加400MB(或更大)的磁盘,并将它的存储单元添加到“/home”分区中。其他工具可以让你调整原来文件系统的大小,所以你仅仅只需要调整“/home”大小来使用更大的分区,接着返回到商务中。
一个非常特殊的处理,LVM甚至可以做它自身的“快照”,这使你能对不可移动的目标做备份。我们返回到这个激动人心的可能中,稍后,有许多另外的真实应用。
以下章节中,我们解释了LVM的基本要素,和它使用中的许多概要。
3. 基本原理
Ok,不要因为恐惧而停止,但是LVM有许多你要明白的术语,以免你危及你的文件系统。
我们从下面开始,或多或少。
物理介质 The physical media
你应该感受“物理”这个单词有极大的延伸,虽然我们刚开始假设它仅仅是一个硬盘,或者一个分区。例如,/dev/hda,/dev/hda6,/dev/sda。你可以转换一个块设备上任何连续块到一个。。。

物理卷 Physical Volume (PV)
一个PV只不过是有许多管理数据添加在它里面的物理介质–一旦你添加了它,LVM就认为它是。。。的一个持有者。

物理分区 Physical Extents (PE)
物理分区真的象一些大的数据块,通常有几MB。PE可以分配给一个。。。

卷组 Volume Group (VG)
一个VG是由许多物理分区组成的(可能来自多个物理卷或硬盘)。虽然这可能容易让你认为一个VG就是由几个硬盘组成的(例如/dev/hda和/dev/sda),但是更确切的说,它包含由这些硬盘提供的许多PE。

>;从这个卷组,PE可以分配给一个。。。

逻辑卷 Logical Volume (LV)
Yes,我们最终到达某处。一个逻辑卷是我们工作的最终结果,这里是我们存储信息的地方。这等同于传统分区的想法。
象用通常的分区一样,在逻辑卷上你能代表性的创建一个。。。

文件系统 Filesystem
文件系统是你想它成为的形态:标准的 ext2,ReiserFS,NWFS,XFS,JFX,NTFS,等等。。。对Linux内核来说,在通常的分区和逻辑卷之间没有差别。
我试着画了一个ASCII图来使这些形象化。
一个物理卷,包含了许多物理分区:
+—–[ Physical Volume ]——+
| PE | PE | PE | PE | PE | PE |
+——————————+
一个卷组,包含了2个物理卷(PV)有6个物理分区:
+——[ Volume Group ]—————–+
| +–[PV]——–+ +–[PV]———+ |
| | PE | PE | PE | | PE | PE | PE | |
| +————–+ +—————+ |
+—————————————+
我们现在做更进一步扩展:
+——[ Volume Group ]—————–+
| +–[PV]——–+ +–[PV]———+ |
| | PE | PE | PE | | PE | PE | PE | |
| +–+—+—+—+ +-+—-+—-+—+ |
| | | | +—–/ | | |
| | | | | | | |
| +-+—+—+-+ +—-+—-+–+ |
| | Logical | | Logical | |
| | Volume | | Volume | |
| | | | | |
| | /home | | /var | |
| +———–+ +————+ |
+—————————————+
这个向我们展示了两个文件系统,它跨越两个磁盘。/home文件系统包含4个物理分区,/var文件系统包含2个。
bert hubert 正在写一个工具来更真实的描述LVM,这里提供了一些它在屏幕上出现的外观。看起来比ASCII图画要好。
3.1 Show & Tell
Ok,这些概念很难理解(’We are LVM of Borg…),因此下面给出了创建一个逻辑卷的例子。不要粘贴这个例子到你的控制台,因为这样会破坏数据,除非碰巧你的计算机的/dev/hda3和/dev/hdb2没有使用。
如果有疑问,查看上面的ASCII图画。
你应该首先设置/dev/hda3和/dev/hdb2的分区类型为0×8e,它表示”Linux LVM”。请注意你的fdisk的版本可能仍不认识这种类型,因此它显示为“Unknown”:
# fdisk /dev/hda
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2 16033+ 83 Linux
/dev/hda2 3 600 4803435 83 Linux
/dev/hda3 601 607 56227+ 83 Linux
/dev/hda4 608 614 56227+ 83 Linux
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2 16033+ 83 Linux
/dev/hda2 3 600 4803435 83 Linux
/dev/hda3 601 607 56227+ 8e Unknown
/dev/hda4 608 614 56227+ 83 Linux
Command (m for help): w
我们对/dev/hdb2做同样的操作,在此就不演示了。这是需要的,以至LVM能重建你应该丢失的配置。
通常,不需要重启,但有些计算机却要求。因此如果下面的例子不工作,试试重启。
接着我们创建物理卷(PV),如下:
# pvcreate /dev/hda3
pvcreate — physical volume "/dev/hda3" successfully created
# pvcreate /dev/hdb2
pvcreate — physical volume "/dev/hdb2" successfully created
我们再将这两个物理卷(PV)加到一个叫做“test”的卷组(VG)中:
# vgcreate test /dev/hdb2 /dev/hda3
vgcreate — INFO: using default physical extent size 4 MB
vgcreate — INFO: maximum logical volume size is 255.99 Gigabyte
vgcreate — doing automatic backup of volume group "test"
vgcreate — volume group "test" successfully created and activated
现在我们有一个空的卷组(VG),让我们来检查一下:
# vgdisplay -v test
— Volume group —
VG Name test
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 184 MB
PE Size 4 MB
Total PE 46
Alloc PE / Size 0 / 0
Free PE / Size 46 / 184 MB
— No logical volumes defined in test —
— Physical volumes —
PV Name (#) /dev/hda3 (2)
PV Status available / allocatable
Total PE / Free PE 13 / 13
PV Name (#) /dev/hdb2 (1)
PV Status available / allocatable
Total PE / Free PE 33 / 33
这里的许多数据–大多数现在都容易理解了。我们看到没有逻辑卷(LV)定义,因此我们要补上它。我们将在“test”卷组(PV)中创建一个50MB的逻辑卷,叫做“HOWTO”:
# lvcreate -L 50M -n HOWTO test
lvcreate — rounding up size to physical extent boundary "52 MB"
lvcreate — doing automatic backup of "test"
lvcreate — logical volume "/dev/test/HOWTO" successfully created
Ok,到这里,我们创建一个文件系统:
# mke2fs /dev/test/HOWTO
mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
13328 inodes, 53248 blocks
2662 blocks (5.00%) reserved for the super user
First data block=1
7 block groups
8192 blocks per group, 8192 fragments per group
1904 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
# mount /dev/test/HOWTO /mnt
# ls /mnt
lost+found
我们做完了!让我们回顾我们的卷组(VG),它现在充满了一些东西:
# vgdisplay test -v
— Volume group —
VG Name test
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 1
Open LV 1
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 184 MB
PE Size 4 MB
Total PE 46
Alloc PE / Size 13 / 52 MB
Free PE / Size 33 / 132 MB
— Logical volume —
LV Name /dev/test/HOWTO
VG Name test
LV Write Access read/write
LV Status available
LV # 1
# open 1
LV Size 52 MB
Current LE 13
Allocated LE 13
Allocation next free
Read ahead sectors 120
Block device 58:0
— Physical volumes —
PV Name (#) /dev/hda3 (2)
PV Status available / allocatable
Total PE / Free PE 13 / 13
PV Name (#) /dev/hdb2 (1)
PV Status available / allocatable
Total PE / Free PE 33 / 20
好,这就是了。/dev/hda3完全没用,而/dev/hdb2有13个物理分区(PE)在用。
3.2 激活和非激活:内核空间和用户空间
和使用所有操作系统一样,Linux划分了两个部分:内核空间(kernel space)和用户空间(user space)。用户空间有时叫做用户区(userland),这也是关于这个主题的一个很好的名字。
关于逻辑卷管理器的创建和修改都是在用户空间做的,然后传给内核。一旦卷组或逻辑卷向内核汇报,它就叫做“激活(Active)”。当它被激活时,只有某些更改可以执行,其他的更改只有在它非激活时执行。
4. 首要条件
LVM在很大范围内的内核中都有效。在Linux 2.4,LVM将全部被集成。内核2.3.47和以前的,LVM要经过处理来合并到主内核中。
4.1 内核
Linux 2.4
包含了你需要的所有内容。希望大多数的发行版都将LVM当成模块集成来发行。如果你需要编译,仅仅是当你选择块设备时打勾LVM选项。
Linux 2.3.99.*
一旦内核向前发展稳定了,这部分就不会存在了。但是现在,我们还是要描述一下。
当我们写这篇文档时,Linux最新的内核版本是2.3.99pre5,它仍然需要一些小的补丁才能使LVM工作。
对于Linux 2.3.99pre3,有两个补丁发行:
一个补丁是张贴在linux-kernel,在这里可以找到。
Andrea Arcangeli改进了这个补丁,提供了一个增量的补丁,它应用于2.3.99pre3 LVM补丁和这之上。
对于Linux 2.3.99pre5,bert hubert将这两个补丁合并成一个了,并且主要针对2.3.99pre5。在这里可以找到这个补丁。使用它要小心。
2.3.99pre6-1,是的,是补丁的一个预览版,特色是第一次完成了LVM的支持!它仍然遗漏了Andreas的补丁,但我们确信它不久真的会发行的。
2.3.99pre4-ac1缺省有一个小的补丁在,并且能工作。虽然它不包括Andreas的补丁。
Linux 2.2
FIXME: write this
Linux 2.3
FIXME: write this
4.2 用户余地
你需要从LVM站点下载有效的工具。用glibc2.1编译系统要求的一些补丁。即使这样,在Debian 2.2上仍会出错。
5. 增长文件系统
你可以用一个预备好的脚本做大量的工作,也可以根据你的需要手工做
5.1 使用e2fsadm
如果在你的卷组中有剩余空间,并且你使用的是ext2文件系统(大多数人都是这样的),你就可以使用这个便捷的工具。
e2fsadm命令利用商业的resize2fs工具。虽然人们都感觉resize2fs是一个很好的软件,但是它并没有被广泛的安装。
如果你想使用FSF的ext2resize命令,你需要告诉e2fsadm以下内容:
# export E2FSADM_RESIZE_CMD=ext2resize
# export E2FSADM_RESIZE_OPTS=""
余下的就简单了,e2fsadm使用时很象其他的LVM命令:
# e2fsadm /dev/test/HOWTO -L+50M
e2fsadm — correcting size 102 MB to physical extent boundary 104 MB
e2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/test/HOWTO: 11/25688 files (0.0% non-contiguous), 3263/102400 blocks
lvextend — extending logical volume "/dev/test/howto" to 104 MB
lvextend — doing automatic backup of volume group "test"
lvextend — logical volume "/dev/test/HOWTO" successfully extended
ext2_resize_fs
ext2_grow_fs
ext2_block_relocate
ext2_block_relocate_grow
ext2_grow_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
direct hits 4096 indirect hits 0 misses 1
e2fsadm — ext2fs in logical volume "/dev/test/HOWTO" successfully extended to 104 MB
5.2 增长逻辑卷
e2fsadm命令为你做了这些工作。然而,了解怎样手工来做可能会有用的。
如果在你的卷组中有剩余空间,那么只需要一行:
# lvextend -L+12M /dev/test/HOWTO
lvextend — rounding size to physical extent boundary
lvextend — extending logical volume "/dev/test/HOWTO" to 116 MB
lvextend — doing automatic backup of volume group "test"
lvextend — logical volume "/dev/test/HOWTO" successfully extended
5.3 增长卷组
这是用vgextend功能实现的,它很象馅饼一样容易。你首先需要创建一个物理卷。这要用pvcreate来实现。使用这个工具,你转换任何块设备为一个物理卷。
这样做了之后,vgextend做余下的任务:
# pvcreate /dev/sda1
pvcreate — physical volume "/dev/sda1" successfully created
# vgextend webgroup /dev/sda1
vgextend — INFO: maximum logical volume size is 255.99 Gigabyte
vgextend — doing automatic backup of volume group "webgroup"
vgextend — volume group "webgroup" successfully extended
请注意,为了要做这些,你的卷组必须是激活的。你可以通过执行象“vgchange -a y webgroup”来使它激活。
5.4 增长文件系统
如果你想手工做,有两条路径可以实现。
ext2离线,使用ext2resize
离线,就意味着你必须umount这个文件系统来做这些改变。在做这些改变的时候,这个文件系统和它上面的数据暂时不可用。如果你想扩充根分区或其他重要的分区,你必须用其他的启动介质来引导。
ext2resize工具可以在GNU ftp站点找到,但大多数的发行版都将它作为一个包来发行。它的语法也简单易懂:
# ext2resize /dev/HOWTO/small 40000
这里40000是文件系统已经增长或收缩之后的块的数目。
ext2在线
FIXME: write this
6. 替换磁盘
这是LVM的好处之一。一旦你发现某个磁盘有错误,那就是要移动你的数据的时候了。使用LVM它很象馅饼一样容易。我们首先举一个明显的替换例子,你先添加一个磁盘到系统中,它至少要和你想要替换的磁盘一样大。
要移动数据,我们移动卷组的物理分区到另一个磁盘上,或者更准确的说,到另一个物理卷上。要做这些,LVM给我们提供了pvmove功能。
假设我们怀疑的那块磁盘叫/dev/hda1,并且我们想用/dev/sdb3来替换它。我们首先将/dev/sdb3添加到包含/dev/hda1的那个卷组中。
在这之前,umount这个卷组上的所有文件系统看来是明智的。有一个全备份也不会损坏什么。
FIXME: is this necessary?
接下来我们执行pvmove。非常简单的,我们仅仅提到我们想要移走的那块磁盘,就象这样:
# pvmove /dev/hda1
pvmove — moving physical extents in active volume group "test1"
pvmove — WARNING: moving of active logical volumes may cause data loss!
pvmove — do you want to continue? [y/n] y
pvmove — doing automatic backup of volume group "test1"
pvmove — 12 extents of physical volume "/dev/hda1" successfully moved
请留意这个警告。而且看来至少有些内核或LVM的版本在使用这个命令时有问题。我是用2.3.99pre6-2来测试的,它可以工作,但要警告。
现在,/dev/hda1没有包含任何物理分区了,我们可以将它从卷组中删除:
# vgreduce test1 /dev/hda1
vgreduce — doing automatic backup of volume group "test1"
vgreduce — volume group "test1" successfully reduced by physical volume:
vgreduce — /dev/hda1
FIXME: we need clarity on a few things. Should the volume group be active? When do we get data loss?
6.1 当事情发生在晚期时
如果一个磁盘没有出现警告就失败了,你就不能移走它上面的物理分区到另一个物理卷上,这样你可能会丢失数据,除非在这个失败的PV上的逻辑卷是镜像了的。正确的行为是用一个同样的PV或者至少同样大小的分区来替换这个失败的PV。
/etc/lvmconf目录包含了LVM数据和结构的备份,包括哪些磁盘做成了PV,每个PV属于哪个VG,每个VG中有哪些LV。
替换了出错的磁盘之后,你可以用vgcfgrestor命令来恢复LVM数据到新的PV上。它恢复卷组和所有它的信息,但是不会恢复在逻辑卷上的数据。这是因为当LVM数据做一些更改时,LVM命令自动做备份。
——————————————————————————–
7. 为一致性备份做快照
这是更加难以置信的一个可能性。假设你有一个非常繁忙的服务器,有许多东西运行。为了一个有用的备份,你需要停止大量的程序,否则,你将以数据不一致告终。
一个规范的例子是从/tmp移动一个文件到/root下,而且/root将先备份。当/root被读的时候,这个文件还不在那里。当/tmp被备份时,这个文件已经不在了。
另一个事例是保存数据库或目录。如果一个文件在使用状态,我们就没有任何线索了,除非我们给应用程序时间做一个清除的关闭。
这样的话,新的问题又出现了。我们关闭程序,做我们的备份,接着重新启动它们。如果备份只花几分钟这是很好的,但是,如果它要花数小时,或者你根本不确定它到底要花多久的时候,事情就真的痛苦了。
LVM可以营救。
使用LVM,我们可以做一个LV瞬间的快照,然后mount它,再备份它。
让我们试验一下:
# mount /dev/test/HOWTO /mnt
# echo >; /mnt/a.test.file
# ls /mnt/
a.test.file lost+found
# ls -l /mnt/
total 13
-rw-r–r– 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found
Ok,我们现在有些事情要用它一起做。让我们产生这个快照:
# lvcreate –size 16m –snapshot –name snap /dev/test/HOWTO
lvcreate — WARNING: all snapshots will be disabled if more than 16 MB are changed
lvcreate — INFO: using default snapshot chunk size of 64 KB
lvcreate — doing automatic backup of "test"
lvcreate — logical volume "/dev/test/HOWTO" successfully created
对于“–size”参数以后再详述。让我们mount这个快照:
# mount /dev/test/snap /snap
# ls /snap
total 13
-rw-r–r– 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found
现在我们从原处删除a.test.file,并且检查它是否仍然在快照里:
# rm /mnt/a.test.file
# ls /snap
total 13
-rw-r–r– 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found
太令人惊讶了!
7.1 它是如何工作的?
记得我们不得不设置“–size”参数吗?真正发生的事情是,“snap”卷需要有那些当LVM调用时,在原处要被改变的所有块的一个拷贝。
当我们删除a.test.file时,它的i节点被删除。这引起64KB要被标注成“脏的”–同时原始数据的一个拷贝被写到“snap”卷。这个例子中,我们分配了16MB给快照,因此如果多于16MB的块要被修改,快照就会无效了。
要决定一个快照分区的正确大小,你将不得不推测基于主LV的使用模式、快照要激活的总时间。例如,在午夜,当无人使用系统的情况下,一个几小时的备份可能要求很小的空间。
请注意,快照不是永久的。如果你卸下LVM或重启,它们就丢失了,需要重新创建。
——————————————————————————–
8. 冗余 & 性能
为了性能的考虑,可以将数据分散在几个条块化的磁盘上。这意味�

GSBL: Global Server Load Balancing
即全球服务器负载均衡
是一个能够跨越多个数据中心主机托管的网站或服务器组提供负载均衡和高可用性。使用 GSLB ,客户可以被定向到可提供最短响应时间的数据中心。当数据中心发生故障时, GSLB 能够透明性可以把客户定向到最佳的备用地点,来提供无中断的服务。

Linux virtual server

                                   

1.集群的需求背景:
可扩展性,单台大型机只能在CPU上扩展,内存上扩展,存储上扩展,但有极限性,只能到一个上限;而集群的优点很多:不影响现有业务,透明化扩充,可以整体性能地扩展,可以买到最新性能的机器。
最常见的三种群集类型包括高性能科学群集、负载均衡群集和高可用性群集
2.集群的网络架构:
有三种架构方式,NAT、IP Tunneling、Direct routing。
NAT的缺点是所有的通信都要通过LOAD BALANCE SERVER,优点是安全,内部REAL SERVER跟外界没有通信,外界无法对其攻击。
IP Tunneling的优点是前端接收由LOAD BALANCE SERVER负责,由real server负责所有的回应,这样不会出现过高的瓶颈,但也会有安全隐患。
Direct routing性能最优越,是通过linux内核来实现。
3.集群的调度算法有十种:
轮转(Round Robin)
加权轮转(Weighted Round Robin)
最少连接(Least Connections)
加权最少连接(Weighted Least Connections)
基于局部性的最少连接(Locality-Based Least Connections)
带复制的基于局部性最少连接(Locality-Based Least Connections with Replication)
目标地址散列(Destination Hashing )
源地址散列(Source Hashing)
最短期望延迟(Shortest Expected Delay)(新增加调度算法)
无须队列等待(Never Queue)(新增加调度算法)

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。

CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络 中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。

为更好地理解CDN,让我们看一下CDN的工作流程。当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技术确定最接近用户的最佳CDN节点, 同时将用户的请求指向该节点。当用户的请求到达指定节点时,CDN的服务器(节点上的高速缓存)负责将用户请求的内容提供给用户。具体流程为: 用户在自己的浏览器中输入要访问的网站的域名,浏览器向本地DNS请求对该域名的解析,本地DNS将请求发到网站的主DNS,主DNS根据一系列的策略确 定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户,用户向给定的CDN节点请求相应网站的内容。

今天看到“老白说真话”的一个招聘,说对系统工程师的一些要求,我也在这儿自我检查一下了。

Advanced System Engineer

职位:高级系统工程师(3人)

职位描述:
1.保证公司webapps系统的正常运行、安全、稳定服务提供技术支撑。
2.负责各类服务器的软硬件的配置安装和维护管理。
3.Server端系统的数据保护,容量规划,实施调整和监控及灾难恢复、服务器的性能监控与优化,配置安全策略
3.为相关接口部门提供技术技持。
4.进行各项新应用的系统、网络测试工作
5.提供服务监控和常规系统健康检查。

任职要求:
1.有3年以上主流UNIX、Linux系统和Windows系统管理、网络管理及相关网络应用的跨平台部署为佳
2.熟悉LINUX服务器网络、安全和web环境规划、配置及调优工作;
3.精通IIS、Apache、MySQL、Squid、Iptables、LVM、LVS、Bind等配置管理 ,熟悉CDN、GSLB架构
4. 了解主流数据库MSSQL2000/2005、Mysql、Oracle安装、配置、调优,熟悉Mysql HA架构、Mysql Cluster及熟悉MSSQL Snapshot、Replication、熟悉DB底层存储架构及不同存储引擎之间的应用和索引碎片处理
5.熟悉unix、linux下防火墙、路由等应用服务的配置、管理;
6.熟悉shell编程;
7.有较强的安全意识,有Linux内核tuning & hacking经验为佳,有一定的系统、网络安全防范、备份和监控经验。
8.有大型网络(ISP网络)设计管理经验为佳
9.对技术文档编写规范有一定了解,能阅读英文技术文档;
10.高度的工作责认心,工作认真、细心、 虚心好学、沟通能力强;

联系人:longrujun@gmail.com


Squid
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

Squid将数据元缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid 支持SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。

Squid由一个主要的服务程序squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当 Squid启动以后,它可以派生出预先指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减 少了服务器等待DNS查询的时间。

iptables--静态防火墙

iptables是复杂的,它集成到linux内核中。用户通过iptables,可以对进出你的计算机的数据包进行过滤。通过iptables命令设置你的规则,来把守你的计算机网络——哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录(log)。

LVM
一份非常内行的Linux LVM HOWTO

1. 绪论
欢迎你,亲爱的读者。
写这个文档的目的是为了告诉你什么是LVM,它怎样工作,你怎样运用它使你的生活变得更容易。虽然有一份LVM FAQ,但仍是德文的,它是从不同的角度来描写的。它是一份“真的”HOWTO,在传授理解(有希望的)的时候也是非常内行的。
我要说清楚我不是一个Linux逻辑卷管理器(Logical Volume Manager)的作者。我向那些作者表示敬意,同时我希望能和他们合作。
不可思议的是我甚至不知道LVM的开发者。我希望这种情况不久会改变。我事先向他们表示道歉。
1.1 免责声明 & 许可
分发这个文档是希望它对你有用,但是不提供任何担保,也没有销售或适应特殊目的的隐含担保。
如果你的磁盘融化了,你公司解雇了你–这决不是我们的错。对不起。请记得经常做备份,在没有重要数据的系统上做实验。
此外,Richard Allen不代表他老板说话。
Linux是Linus Torvalds的注册商标。
英文原文(若翻译有误,以原文为准)
This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If your disks melt and your company fires you – its never our fault. Sorry. Make frequent backups and do your experiments on non-mission critical systems.
Furthermore, Richard Allen does not speak for his employer.
Linux is a registered trademark of Linus Torvalds.
1.2 预备知识
不是太多。如果你曾经安装过Linux和创建过文件系统(fdisk/mkfs),那你就准备就绪了。但因为总是以root身份操作,所以一定要小心谨慎!错误的命令或操作设备文件都可能损坏已经存在的数据。
如果你知道怎样配置HP/UX LVM,那你几乎都完成了,Linux工作得很象HP上的处理。
1.3 注意事项
关于这份文档有几点需要注释。虽然我写了大部分,但我真的不希望它停步。我坚决相信Open Source,我鼓励你反馈、更新、打补丁等等。不要不愿意告诉我们有关排版或普通的老错误。
如果你感觉你更有资格来维护一部分,或者你认为你能创作和维护一个新的部分,欢迎你。这个HOWTO的SGML格式是通过CVS可用的。我预想这会是个合作计划。
这份文档里,你会发现许多FIXME的通知。补丁总是欢迎的!无论你在哪里发现FIXME,你都要明白你正踩在未知的领域。这不是说其他地方没有错误,而是说这里是要特别注意的地方。如果你已经验证了什么,请告诉我,我好删除这FIXME通知。
1.4 访问,CVS & 更新
这份HOWTO的规范定位在 这里。
我们现在有匿名的CVS访问,对全世界普遍有效。这使你更容易获得最新版的HOWTO,并提供改变和增强。
如果你想通过CVS获得这份HOWTO,下面教你怎样做:
$ export CVSROOT=:pserver:anon@outpost.ds9a.nl:/var/cvsroot
$ cvs login
CVS password: [enter cvs (without s)]
$ cvs co lvm-howto
cvs server: Updating lvm-howto
U lvm-howto/lvm-howto.sgml
如果你发现错误,或者想增加什么,本地修复它,并运行“cvs diff -u”,同时将结果发给我们。
提供了一个Makefile文件来帮助你创建postscript,dvi,pdf,html 和 plain text格式。你可能需要安装sgml-tools,ghostscript 和 tetex 以获得所有格式。
1.5 这份文档的编排
我们将首先解释一些需要的基本知识。我们尽量设法包括例子来帮助理解。
2. 什么是LVM?
传统上,一个分区大小是静态的。这要求一个系统安装人员必须考虑的不是“我要在这个分区上存储多少数据”,而是“我‘究竟’要在这个分区上存储多 少数据”。当一个用户在这个分区上没有空间了,他要么不得不重新分区(这可能要求整个操作系统重装),要么象符号连接一样使用组装机。
一个分区就是物理磁盘上一系列连续数据块的概念已经演变了。多数类Unix系统现在有能力分解物理磁盘到许多单元。多个驱动器上的存储单元可以汇聚成一个“逻辑卷”,它们可以分配给分区。另外,单元可以随着空间要求的改变而从分区中添加和删除。
这就是基本的逻辑卷管理器(LVM)
例如,假设你有一个1GB的磁盘,并且创建“/home”分区花了600MB。设想你没有空间了,于是决定“/home”需要1GB。用传统的分区观念,你不得不有另外一个至少1GB大小的驱动器。接着增加这个磁盘,创建新的/home,并且将现有的数据拷贝过去。
然而,用LVM配置,你仅仅只需要增加400MB(或更大)的磁盘,并将它的存储单元添加到“/home”分区中。其他工具可以让你调整原来文件系统的大小,所以你仅仅只需要调整“/home”大小来使用更大的分区,接着返回到商务中。
一个非常特殊的处理,LVM甚至可以做它自身的“快照”,这使你能对不可移动的目标做备份。我们返回到这个激动人心的可能中,稍后,有许多另外的真实应用。
以下章节中,我们解释了LVM的基本要素,和它使用中的许多概要。
3. 基本原理
Ok,不要因为恐惧而停止,但是LVM有许多你要明白的术语,以免你危及你的文件系统。
我们从下面开始,或多或少。
物理介质 The physical media
你应该感受“物理”这个单词有极大的延伸,虽然我们刚开始假设它仅仅是一个硬盘,或者一个分区。例如,/dev/hda,/dev/hda6,/dev/sda。你可以转换一个块设备上任何连续块到一个。。。

物理卷 Physical Volume (PV)
一个PV只不过是有许多管理数据添加在它里面的物理介质–一旦你添加了它,LVM就认为它是。。。的一个持有者。

物理分区 Physical Extents (PE)
物理分区真的象一些大的数据块,通常有几MB。PE可以分配给一个。。。

卷组 Volume Group (VG)
一个VG是由许多物理分区组成的(可能来自多个物理卷或硬盘)。虽然这可能容易让你认为一个VG就是由几个硬盘组成的(例如/dev/hda和/dev/sda),但是更确切的说,它包含由这些硬盘提供的许多PE。

>;从这个卷组,PE可以分配给一个。。。

逻辑卷 Logical Volume (LV)
Yes,我们最终到达某处。一个逻辑卷是我们工作的最终结果,这里是我们存储信息的地方。这等同于传统分区的想法。
象用通常的分区一样,在逻辑卷上你能代表性的创建一个。。。

文件系统 Filesystem
文件系统是你想它成为的形态:标准的 ext2,ReiserFS,NWFS,XFS,JFX,NTFS,等等。。。对Linux内核来说,在通常的分区和逻辑卷之间没有差别。
我试着画了一个ASCII图来使这些形象化。
一个物理卷,包含了许多物理分区:
+—–[ Physical Volume ]——+
| PE | PE | PE | PE | PE | PE |
+——————————+
一个卷组,包含了2个物理卷(PV)有6个物理分区:
+——[ Volume Group ]—————–+
| +–[PV]——–+ +–[PV]———+ |
| | PE | PE | PE | | PE | PE | PE | |
| +————–+ +—————+ |
+—————————————+
我们现在做更进一步扩展:
+——[ Volume Group ]—————–+
| +–[PV]——–+ +–[PV]———+ |
| | PE | PE | PE | | PE | PE | PE | |
| +–+—+—+—+ +-+—-+—-+—+ |
| | | | +—–/ | | |
| | | | | | | |
| +-+—+—+-+ +—-+—-+–+ |
| | Logical | | Logical | |
| | Volume | | Volume | |
| | | | | |
| | /home | | /var | |
| +———–+ +————+ |
+—————————————+
这个向我们展示了两个文件系统,它跨越两个磁盘。/home文件系统包含4个物理分区,/var文件系统包含2个。
bert hubert 正在写一个工具来更真实的描述LVM,这里提供了一些它在屏幕上出现的外观。看起来比ASCII图画要好。
3.1 Show & Tell
Ok,这些概念很难理解(’We are LVM of Borg…),因此下面给出了创建一个逻辑卷的例子。不要粘贴这个例子到你的控制台,因为这样会破坏数据,除非碰巧你的计算机的/dev/hda3和/dev/hdb2没有使用。
如果有疑问,查看上面的ASCII图画。
你应该首先设置/dev/hda3和/dev/hdb2的分区类型为0×8e,它表示”Linux LVM”。请注意你的fdisk的版本可能仍不认识这种类型,因此它显示为“Unknown”:
# fdisk /dev/hda
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2 16033+ 83 Linux
/dev/hda2 3 600 4803435 83 Linux
/dev/hda3 601 607 56227+ 83 Linux
/dev/hda4 608 614 56227+ 83 Linux
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2 16033+ 83 Linux
/dev/hda2 3 600 4803435 83 Linux
/dev/hda3 601 607 56227+ 8e Unknown
/dev/hda4 608 614 56227+ 83 Linux
Command (m for help): w
我们对/dev/hdb2做同样的操作,在此就不演示了。这是需要的,以至LVM能重建你应该丢失的配置。
通常,不需要重启,但有些计算机却要求。因此如果下面的例子不工作,试试重启。
接着我们创建物理卷(PV),如下:
# pvcreate /dev/hda3
pvcreate — physical volume "/dev/hda3" successfully created
# pvcreate /dev/hdb2
pvcreate — physical volume "/dev/hdb2" successfully created
我们再将这两个物理卷(PV)加到一个叫做“test”的卷组(VG)中:
# vgcreate test /dev/hdb2 /dev/hda3
vgcreate — INFO: using default physical extent size 4 MB
vgcreate — INFO: maximum logical volume size is 255.99 Gigabyte
vgcreate — doing automatic backup of volume group "test"
vgcreate — volume group "test" successfully created and activated
现在我们有一个空的卷组(VG),让我们来检查一下:
# vgdisplay -v test
— Volume group —
VG Name test
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 184 MB
PE Size 4 MB
Total PE 46
Alloc PE / Size 0 / 0
Free PE / Size 46 / 184 MB
— No logical volumes defined in test —
— Physical volumes —
PV Name (#) /dev/hda3 (2)
PV Status available / allocatable
Total PE / Free PE 13 / 13
PV Name (#) /dev/hdb2 (1)
PV Status available / allocatable
Total PE / Free PE 33 / 33
这里的许多数据–大多数现在都容易理解了。我们看到没有逻辑卷(LV)定义,因此我们要补上它。我们将在“test”卷组(PV)中创建一个50MB的逻辑卷,叫做“HOWTO”:
# lvcreate -L 50M -n HOWTO test
lvcreate — rounding up size to physical extent boundary "52 MB"
lvcreate — doing automatic backup of "test"
lvcreate — logical volume "/dev/test/HOWTO" successfully created
Ok,到这里,我们创建一个文件系统:
# mke2fs /dev/test/HOWTO
mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
13328 inodes, 53248 blocks
2662 blocks (5.00%) reserved for the super user
First data block=1
7 block groups
8192 blocks per group, 8192 fragments per group
1904 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
# mount /dev/test/HOWTO /mnt
# ls /mnt
lost+found
我们做完了!让我们回顾我们的卷组(VG),它现在充满了一些东西:
# vgdisplay test -v
— Volume group —
VG Name test
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 1
Open LV 1
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 184 MB
PE Size 4 MB
Total PE 46
Alloc PE / Size 13 / 52 MB
Free PE / Size 33 / 132 MB
— Logical volume —
LV Name /dev/test/HOWTO
VG Name test
LV Write Access read/write
LV Status available
LV # 1
# open 1
LV Size 52 MB
Current LE 13
Allocated LE 13
Allocation next free
Read ahead sectors 120
Block device 58:0
— Physical volumes —
PV Name (#) /dev/hda3 (2)
PV Status available / allocatable
Total PE / Free PE 13 / 13
PV Name (#) /dev/hdb2 (1)
PV Status available / allocatable
Total PE / Free PE 33 / 20
好,这就是了。/dev/hda3完全没用,而/dev/hdb2有13个物理分区(PE)在用。
3.2 激活和非激活:内核空间和用户空间
和使用所有操作系统一样,Linux划分了两个部分:内核空间(kernel space)和用户空间(user space)。用户空间有时叫做用户区(userland),这也是关于这个主题的一个很好的名字。
关于逻辑卷管理器的创建和修改都是在用户空间做的,然后传给内核。一旦卷组或逻辑卷向内核汇报,它就叫做“激活(Active)”。当它被激活时,只有某些更改可以执行,其他的更改只有在它非激活时执行。
4. 首要条件
LVM在很大范围内的内核中都有效。在Linux 2.4,LVM将全部被集成。内核2.3.47和以前的,LVM要经过处理来合并到主内核中。
4.1 内核
Linux 2.4
包含了你需要的所有内容。希望大多数的发行版都将LVM当成模块集成来发行。如果你需要编译,仅仅是当你选择块设备时打勾LVM选项。
Linux 2.3.99.*
一旦内核向前发展稳定了,这部分就不会存在了。但是现在,我们还是要描述一下。
当我们写这篇文档时,Linux最新的内核版本是2.3.99pre5,它仍然需要一些小的补丁才能使LVM工作。
对于Linux 2.3.99pre3,有两个补丁发行:
一个补丁是张贴在linux-kernel,在这里可以找到。
Andrea Arcangeli改进了这个补丁,提供了一个增量的补丁,它应用于2.3.99pre3 LVM补丁和这之上。
对于Linux 2.3.99pre5,bert hubert将这两个补丁合并成一个了,并且主要针对2.3.99pre5。在这里可以找到这个补丁。使用它要小心。
2.3.99pre6-1,是的,是补丁的一个预览版,特色是第一次完成了LVM的支持!它仍然遗漏了Andreas的补丁,但我们确信它不久真的会发行的。
2.3.99pre4-ac1缺省有一个小的补丁在,并且能工作。虽然它不包括Andreas的补丁。
Linux 2.2
FIXME: write this
Linux 2.3
FIXME: write this
4.2 用户余地
你需要从LVM站点下载有效的工具。用glibc2.1编译系统要求的一些补丁。即使这样,在Debian 2.2上仍会出错。
5. 增长文件系统
你可以用一个预备好的脚本做大量的工作,也可以根据你的需要手工做
5.1 使用e2fsadm
如果在你的卷组中有剩余空间,并且你使用的是ext2文件系统(大多数人都是这样的),你就可以使用这个便捷的工具。
e2fsadm命令利用商业的resize2fs工具。虽然人们都感觉resize2fs是一个很好的软件,但是它并没有被广泛的安装。
如果你想使用FSF的ext2resize命令,你需要告诉e2fsadm以下内容:
# export E2FSADM_RESIZE_CMD=ext2resize
# export E2FSADM_RESIZE_OPTS=""
余下的就简单了,e2fsadm使用时很象其他的LVM命令:
# e2fsadm /dev/test/HOWTO -L+50M
e2fsadm — correcting size 102 MB to physical extent boundary 104 MB
e2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/test/HOWTO: 11/25688 files (0.0% non-contiguous), 3263/102400 blocks
lvextend — extending logical volume "/dev/test/howto" to 104 MB
lvextend — doing automatic backup of volume group "test"
lvextend — logical volume "/dev/test/HOWTO" successfully extended
ext2_resize_fs
ext2_grow_fs
ext2_block_relocate
ext2_block_relocate_grow
ext2_grow_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
direct hits 4096 indirect hits 0 misses 1
e2fsadm — ext2fs in logical volume "/dev/test/HOWTO" successfully extended to 104 MB
5.2 增长逻辑卷
e2fsadm命令为你做了这些工作。然而,了解怎样手工来做可能会有用的。
如果在你的卷组中有剩余空间,那么只需要一行:
# lvextend -L+12M /dev/test/HOWTO
lvextend — rounding size to physical extent boundary
lvextend — extending logical volume "/dev/test/HOWTO" to 116 MB
lvextend — doing automatic backup of volume group "test"
lvextend — logical volume "/dev/test/HOWTO" successfully extended
5.3 增长卷组
这是用vgextend功能实现的,它很象馅饼一样容易。你首先需要创建一个物理卷。这要用pvcreate来实现。使用这个工具,你转换任何块设备为一个物理卷。
这样做了之后,vgextend做余下的任务:
# pvcreate /dev/sda1
pvcreate — physical volume "/dev/sda1" successfully created
# vgextend webgroup /dev/sda1
vgextend — INFO: maximum logical volume size is 255.99 Gigabyte
vgextend — doing automatic backup of volume group "webgroup"
vgextend — volume group "webgroup" successfully extended
请注意,为了要做这些,你的卷组必须是激活的。你可以通过执行象“vgchange -a y webgroup”来使它激活。
5.4 增长文件系统
如果你想手工做,有两条路径可以实现。
ext2离线,使用ext2resize
离线,就意味着你必须umount这个文件系统来做这些改变。在做这些改变的时候,这个文件系统和它上面的数据暂时不可用。如果你想扩充根分区或其他重要的分区,你必须用其他的启动介质来引导。
ext2resize工具可以在GNU ftp站点找到,但大多数的发行版都将它作为一个包来发行。它的语法也简单易懂:
# ext2resize /dev/HOWTO/small 40000
这里40000是文件系统已经增长或收缩之后的块的数目。
ext2在线
FIXME: write this
6. 替换磁盘
这是LVM的好处之一。一旦你发现某个磁盘有错误,那就是要移动你的数据的时候了。使用LVM它很象馅饼一样容易。我们首先举一个明显的替换例子,你先添加一个磁盘到系统中,它至少要和你想要替换的磁盘一样大。
要移动数据,我们移动卷组的物理分区到另一个磁盘上,或者更准确的说,到另一个物理卷上。要做这些,LVM给我们提供了pvmove功能。
假设我们怀疑的那块磁盘叫/dev/hda1,并且我们想用/dev/sdb3来替换它。我们首先将/dev/sdb3添加到包含/dev/hda1的那个卷组中。
在这之前,umount这个卷组上的所有文件系统看来是明智的。有一个全备份也不会损坏什么。
FIXME: is this necessary?
接下来我们执行pvmove。非常简单的,我们仅仅提到我们想要移走的那块磁盘,就象这样:
# pvmove /dev/hda1
pvmove — moving physical extents in active volume group "test1"
pvmove — WARNING: moving of active logical volumes may cause data loss!
pvmove — do you want to continue? [y/n] y
pvmove — doing automatic backup of volume group "test1"
pvmove — 12 extents of physical volume "/dev/hda1" successfully moved
请留意这个警告。而且看来至少有些内核或LVM的版本在使用这个命令时有问题。我是用2.3.99pre6-2来测试的,它可以工作,但要警告。
现在,/dev/hda1没有包含任何物理分区了,我们可以将它从卷组中删除:
# vgreduce test1 /dev/hda1
vgreduce — doing automatic backup of volume group "test1"
vgreduce — volume group "test1" successfully reduced by physical volume:
vgreduce — /dev/hda1
FIXME: we need clarity on a few things. Should the volume group be active? When do we get data loss?
6.1 当事情发生在晚期时
如果一个磁盘没有出现警告就失败了,你就不能移走它上面的物理分区到另一个物理卷上,这样你可能会丢失数据,除非在这个失败的PV上的逻辑卷是镜像了的。正确的行为是用一个同样的PV或者至少同样大小的分区来替换这个失败的PV。
/etc/lvmconf目录包含了LVM数据和结构的备份,包括哪些磁盘做成了PV,每个PV属于哪个VG,每个VG中有哪些LV。
替换了出错的磁盘之后,你可以用vgcfgrestor命令来恢复LVM数据到新的PV上。它恢复卷组和所有它的信息,但是不会恢复在逻辑卷上的数据。这是因为当LVM数据做一些更改时,LVM命令自动做备份。
——————————————————————————–
7. 为一致性备份做快照
这是更加难以置信的一个可能性。假设你有一个非常繁忙的服务器,有许多东西运行。为了一个有用的备份,你需要停止大量的程序,否则,你将以数据不一致告终。
一个规范的例子是从/tmp移动一个文件到/root下,而且/root将先备份。当/root被读的时候,这个文件还不在那里。当/tmp被备份时,这个文件已经不在了。
另一个事例是保存数据库或目录。如果一个文件在使用状态,我们就没有任何线索了,除非我们给应用程序时间做一个清除的关闭。
这样的话,新的问题又出现了。我们关闭程序,做我们的备份,接着重新启动它们。如果备份只花几分钟这是很好的,但是,如果它要花数小时,或者你根本不确定它到底要花多久的时候,事情就真的痛苦了。
LVM可以营救。
使用LVM,我们可以做一个LV瞬间的快照,然后mount它,再备份它。
让我们试验一下:
# mount /dev/test/HOWTO /mnt
# echo >; /mnt/a.test.file
# ls /mnt/
a.test.file lost+found
# ls -l /mnt/
total 13
-rw-r–r– 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found
Ok,我们现在有些事情要用它一起做。让我们产生这个快照:
# lvcreate –size 16m –snapshot –name snap /dev/test/HOWTO
lvcreate — WARNING: all snapshots will be disabled if more than 16 MB are changed
lvcreate — INFO: using default snapshot chunk size of 64 KB
lvcreate — doing automatic backup of "test"
lvcreate — logical volume "/dev/test/HOWTO" successfully created
对于“–size”参数以后再详述。让我们mount这个快照:
# mount /dev/test/snap /snap
# ls /snap
total 13
-rw-r–r– 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found
现在我们从原处删除a.test.file,并且检查它是否仍然在快照里:
# rm /mnt/a.test.file
# ls /snap
total 13
-rw-r–r– 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found
太令人惊讶了!
7.1 它是如何工作的?
记得我们不得不设置“–size”参数吗?真正发生的事情是,“snap”卷需要有那些当LVM调用时,在原处要被改变的所有块的一个拷贝。
当我们删除a.test.file时,它的i节点被删除。这引起64KB要被标注成“脏的”–同时原始数据的一个拷贝被写到“snap”卷。这个例子中,我们分配了16MB给快照,因此如果多于16MB的块要被修改,快照就会无效了。
要决定一个快照分区的正确大小,你将不得不推测基于主LV的使用模式、快照要激活的总时间。例如,在午夜,当无人使用系统的情况下,一个几小时的备份可能要求很小的空间。
请注意,快照不是永久的。如果你卸下LVM或重启,它们就丢失了,需要重新创建。
——————————————————————————–
8. 冗余 & 性能
为了性能的考虑,可以将数据分散在几个条块化的磁盘上。这意味�

GSBL: Global Server Load Balancing
即全球服务器负载均衡
是一个能够跨越多个数据中心主机托管的网站或服务器组提供负载均衡和高可用性。使用 GSLB ,客户可以被定向到可提供最短响应时间的数据中心。当数据中心发生故障时, GSLB 能够透明性可以把客户定向到最佳的备用地点,来提供无中断的服务。

Linux virtual server

                                   

1.集群的需求背景:
可扩展性,单台大型机只能在CPU上扩展,内存上扩展,存储上扩展,但有极限性,只能到一个上限;而集群的优点很多:不影响现有业务,透明化扩充,可以整体性能地扩展,可以买到最新性能的机器。
最常见的三种群集类型包括高性能科学群集、负载均衡群集和高可用性群集
2.集群的网络架构:
有三种架构方式,NAT、IP Tunneling、Direct routing。
NAT的缺点是所有的通信都要通过LOAD BALANCE SERVER,优点是安全,内部REAL SERVER跟外界没有通信,外界无法对其攻击。
IP Tunneling的优点是前端接收由LOAD BALANCE SERVER负责,由real server负责所有的回应,这样不会出现过高的瓶颈,但也会有安全隐患。
Direct routing性能最优越,是通过linux内核来实现。
3.集群的调度算法有十种:
轮转(Round Robin)
加权轮转(Weighted Round Robin)
最少连接(Least Connections)
加权最少连接(Weighted Least Connections)
基于局部性的最少连接(Locality-Based Least Connections)
带复制的基于局部性最少连接(Locality-Based Least Connections with Replication)
目标地址散列(Destination Hashing )
源地址散列(Source Hashing)
最短期望延迟(Shortest Expected Delay)(新增加调度算法)
无须队列等待(Never Queue)(新增加调度算法)

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。

CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络 中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。

为更好地理解CDN,让我们看一下CDN的工作流程。当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技术确定最接近用户的最佳CDN节点, 同时将用户的请求指向该节点。当用户的请求到达指定节点时,CDN的服务器(节点上的高速缓存)负责将用户请求的内容提供给用户。具体流程为: 用户在自己的浏览器中输入要访问的网站的域名,浏览器向本地DNS请求对该域名的解析,本地DNS将请求发到网站的主DNS,主DNS根据一系列的策略确 定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户,用户向给定的CDN节点请求相应网站的内容。

直到在gmail查信件,看到一封比较久前的快讯才知道donews给收购了,才想起有这一块曾经放牧的地方,就回来看下了,虽然这段时间已经改用笔去记下想写的事,不过又会有种感觉,某些事还是应该留在网上,毕竟能看到的朋友多些,或许也能碰到有共鸣的,所以又想回来了。

2006年01月06日

昨晚夜经东风路,突然有二男在路中心越护栏而过,我的车车几乎碰上他们,正在为此而出了一身冷汗及生气时,在马路的另一侧传来一女的呼叫声"有人抢东西".再看那两男,正跑步冲向出租车,顿时明白他们正是抢东西的盗贼.马上驱车前往,同时让女友报警,但两男已经上了出租车.情急下,大灯,喇叭各招纷出,但那出租车司机不知道是看不到还是受他们要胁,开得却更快.只能在匆忙中记得车牌最后的四位,同时加大油门想紧随其后.但实在是小车马力不足及开快车经验不够,在追赶3分钟后看着其转入小路而自己转线不及而不见其踪影 :(

后因已经报警,需在路上等警察立案,几分钟后警察来到,把情况讲叙清楚后他们表示会跟进.至此,才知道自己手心出汗,心情也久久未能平复.

最后,希望大家都能过个平安年.

2006年01月05日

一夜多梦,说不清原因。

最为记忆清晰的一个是说半年前一个朋友扬言开始学习西班牙语,结果一日打电话约相见,在电话中语言含糊,还咨询我一些非常简单的英语问题,带少许疑惑应约而至,却发现其正在以流利的西班牙语于电话中聊天,后了解原来是认识了一个希望他学习西班牙语的女友……….. 梦至此而醒,在奇怪为何会有此梦之际,也在感叹爱情的力量(在梦中也会坚信:) 后越想越远,发现其实人不应该以缺乏动力去解释为何一些事做不好,缺乏的是一种主观去把营造动力的能力。曾读过一些如何激励自己的书,就曾提出要把某些奖励当成自己一件事情结束后动力,却均未提及如何去营造这种能力。这或许本应该一门大的学问。

2006年01月04日

2006年来了,相信在一段时间内,填写日期时还会不时习惯地填写上2005。2005虽然过去,但留下的东西并不能一挥即走,今天基于昨天,明天源自今天,06年编写的故事将会依赖于今天的表现,让大家在06年的第一天工作中默许一愿:“新年新进步”

2005年12月31日

今天是2005年的最后一天了,在桌面上的是《GOOGLE成功的七堂课》一书,感觉上从昨天看到这书后,人才会有些醒觉的感觉,上班、工作时才会有些思考着自己应该做什么的念头。细细回想,仿佛每一天都过得不错,但值得流下来回味的东西却并不多,是因为生活已经程式化还是因为人已经走入了一个见怪不怪的自以为是的程面呢?这样一想,真是太可怕了,在之前自己一直为摆脱这样的状态而努力去读书、思考,虽然坚持下来有成绩的不多,但总以为自己在是走一条正确的路,没想到一年结束之日,再度反思之时才发现自己已经在种状态下生活了颇为长一段时间了。

我不是在追求天天精彩,但我在寻求一种能有沉淀下来的生活,不再是一年结束之时,回思得到的是又一次遗憾。

祝大家新年快乐!

2005年06月24日
文教首页 | 焦点 | 时讯 | 视线 | 人物 | 资源 | 远程教育专题



美国管理技术大学(UMT)推出IT和MBA项目管理课程网络教育!

过去的教授和现在的教授有何不同?

网大首页 > 文教 > 正文   2005-6-17 10:49:56   网大
 

    从现在的教授贬值说起

    眼下谈起大学教授这个“高等学校中职别最高的教师”的社会声望,显然是个沉重的话题。新华社主办的《瞭望》周刊曾刊登一篇题为《“教授”贬值为哪般》的文章〔1〕,称“教授满街走”已是中国高校教授成堆的写照。该文举例说:1927年时的南京大学(时称第四大学)没有一位教授,即使如美国芝加哥大学毕业的吴有训博士、哈佛大学毕业的竺可桢博士、法国国家科学院毕业的严济慈博士,也都只聘为副教授;而现在南京大学的教授已达千多人;故该文还引用这个学校一位博士生导师不久前对学生说的话:“别称我教授,现在的教授一分钱能买好几个。”对此,季羡林先生也曾说过:“如今不管是谁,只要能在北大谋一个教书的位子,就能评上教授。而在七八十年前,连鲁迅、梁漱溟这样的大学者在北大也只能被聘为‘讲师’。”

    说现在的大学教授“一分钱能买好几个”,过于偏颇,我不太同意。清者自清,浊者自浊,作为自己耳闻目睹的一种理性观察和实际接触,我一直相信,不很合格的教授毕竟是少数,多数教授、尤其是那些身为白丁的“纯教授”,其行为价值的取向仍属于置身学问并埋头苦干的“脊梁”一类,且当中不少人顶住了“官”念和外来高薪的种种诱惑而坚守住自己对学术本位的诉求,他们的贡献率无论如何都对得起国家给他们的俸禄。但近些年来,大学教授贬值成为人们共识性的话语,也是一个不争的客观事实。为什么过去的大学教授“望之如神仙中人”(季羡林先生语),而现在的教授却如此“沦落”,反差的致因值得探究。谢泳先生认为:“过去教授是手工生产的,少,也就值钱,今日的教授是机器生产的,多,也就贬值了。”〔2〕不过,今日中国重点大学校园内所谓“五步撞一教授,十步撞一博导,五十步撞一院士”的现象〔3〕,只是从“教授通货膨胀”的角度,论证当下教授贬值的一个原因;而真正导致教授身份危机的核心原因,恐怕还是指今日教授的精神气质和专业水准较之过去的教授,在社会权威、信任度等方面的“正面得分”明显偏低,这使我萌生了写这篇“比较研究方向”文章的动机。

    其实,探讨教授的精神气质和学术水准的内涵,不需要用很多学理语言进行归纳描述。概而言之,一句话即可:专业能力与公共能力兼容并包,是教授身份同行认可和社会认可的坐标。因为,教授的精神气质和学术水准具有相互关联的两极张力。前者指教授作为知识分子社会良知的代表人物,所应该具备的社会责任意识;后者指教授的专业能力。马克思·韦伯指出,一个学者要想赢得社会的认同感,“无论就其表面和本质而言,个人只有通过最彻底的专业化,才有可能具备信心在知识领域取得一些完美的成就”〔4〕。

    教授的精神气质也可理解为是其形成自己专业能力所必须具备的“人格品质”。当这种人格品质面向公共社会领域时,能够展示其揭示、分析公共问题所蕴含的专业内涵,同时以大众知悉的表述方式介入公共话语。一定意义上讲,教授社会权威地位的支撑点,不仅要看他们是否是专业规范的立法者,还要看他们能否跨越其专业领域,并在专业与公共之间寻找一个自然融合的关联点,直接或间接地成为公共规范的立法者、护法者,从而解释生活、申诉正义、张扬民主,履行教授的社会责任。如金岳霖先生所言,中国惟有依靠学者,并用“这种人去监督政治,才有大力量,才有大进步,他们自身本来不是政客,所以不至于被政府利用。有这样一种优秀分子,或一个团体,费几十年的功夫,监督政府,改造社会,中国的事,或者不至于无望”〔5〕。为实现这个目标,他提了几点希望:希望知识分子首先能成为“独立进款”的人,也就是靠自己的学问吃饭,不依附于任何权贵势力,而实现自己的独立人格。他说:“我开剃头店的进款比交通部秘书的进款独立多了,所以与其做官,不如开剃头店,与其在部里拍马,不如在水果摊子上唱歌。”希望知识分子不要做官,也就是“不做政客,不把官当成职业的意思”。希望知识分子“不发财,如果把发财当作目的,自己变作一个折扣的机器,同时对于没有意味的人,要极力敷衍”。希望知识分子能有一个“独立的环境”,要和一群志同道合的人在一起。

[1] [2] [3] [4] 下一页

 
 
相关文章:

  • 联合国秘书长发言人受聘担任浙江大学客座教授 [2005-6-15]
  • 教授3年发表82篇论文 学术明星还是学术泡沫 [2005-6-10]
  • 女生指控教授性交易后续 [2005-6-10]
  • 女生自曝与教授发生性关系得到考研试题和答案 [2005-6-9]
  • 剑桥教授:选专业比选学校重要 [2005-5-30]
  • 北大 请你毋忘大学之大 [2005-4-21]
  • 同济首推教学专职教授 主要精力就是给本科生上课 [2005-4-20]
  • 为北大陈瑞华教授说句话 [2005-4-20]
  • 江苏酝酿逐步打破“教授终身制”试行教授聘用制 [2005-4-14]
  • 北大教授被指侮辱自考生 称他们混吃混喝蹭课听 [2005-4-14]
  •  



     
     
    Copyright (C) 1999-2005 NETBIG.COM (CHINA) LIMITED All Rights Reserved

    玩魔兽给自己最大的感觉是“体验”,之前玩传奇的感觉是“投入”,本想经历过玩传奇的疯狂后,对网游会是一种畏怕的心理,害怕自己又会沉浸入去,从而一直对网游有说不出的抗拒。玩魔兽好大程度是因为身边的朋友的提及,奇怪的是一些本以为不会玩网游的朋友对魔兽评价总是不低也不高(一种可以接受的态度),而一种喜爱玩网游的朋友倒感受不出如同玩其它游戏的疯狂,为什么呢?从而自己也抱着试一试的态度开始了这个网游。

    进入游戏后的感觉就是人少,相比传奇一个城中有近百人的盛况,这儿的人的确少,试玩了一会儿,有一些了解,但仿佛仍什么头绪,就退出了。

    再和朋友聊,谈谈感受,原来他们最初时也会如此,评价为上手复杂。

    回去再玩,发现越是细细看游戏中的说明文字,对上手帮助越大,而且每一次加深了解都会面对更多的问题,如地图、操纵等….. 但这种探索性的游戏,对我而且会随着时间增加,集中力就会减低,这次游戏玩到1个小时自己又退出了(又是因为有个点无头绪)。

    再找朋友聊天,又会有些发现,回去再试,又会新问题,让你又停住,这个时间我发现这其实称得上是一个好游戏了。无存档,无修改,虽要投入,但并不单一,关键还在于游戏本向拒绝单一(连续的为升级打怪会自己降低效率)

    有了这个理解后,对这个游戏的投入或许不会少,但这并不为枯燥,因为你不缺乏交流,不缺乏思考,不缺乏尝试,不知道这是不是作者的初衷呢?