本站备忘录

这个是给自己看的

关于首行缩进:
如果需要首行缩进,这么干:
<div class=”indent”>
要首行缩进的段落
</div>
这是因为在style.css中做了这样的CSS样式:
#content .indent p {
text-indent: 2em;
}

插入源码:

安装了WP-Syntax插件,用下面的方法插入源码:

<pre lang=”lang” escaped=”true”>

</pre>

发表在 WordPress | 留下评论

wordpress主题文件查找规则

主页:
home.php
index.php
文章页:
single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos.php(WordPress 3.0及以上版本支持
single.php
index.php
页面:
自定义模板 – 在WordPress后台创建页面的地方,右侧边栏可以选择页面的自定义模板
page-{slug}.php – 如果页面的缩略名是news,WordPress将会查找 page-news.php(WordPress 2.9及以上版本支持)
page-{id}.php – 如果页面ID是6,WordPress将会查找page-6.php
page.php
index.php
分类:
category-{slug}.php – 如果分类的缩略名为news,WordPress将会查找category-news.php(WordPress 2.9及以上版本支持)
category-{id}.php -如果分类ID为6,WordPress将会查找category-6.php
category.php
archive.php
index.php
标签:
tag-{slug}.php – 如果标签缩略名为sometag,WordPress将会查找tag-sometag.php
tag-{id}.php – 如果标签ID为6,WordPress将会查找tag-6.php(WordPress 2.9及以上版本支持)
tag.php
archive.php
index.php
作者:
author-{nicename}.php – 如果作者的昵称为rami,WordPress将会查找author-rami.php(WordPress 3.0及以上版本支持)
author-{id}.php – 如果作者ID为6,WordPress将会查找author-6.php(WordPress 3.0及以上版本支持)
author.php
archive.php
index.php
日期页面:
date.php
archive.php
index.php
搜索结果:
search.php
index.php
404 (未找到)页面:
404.php
index.php
附件页面:
MIME_type.php – 可以是任何MIME类型 (image.php, video.php, audio.php, application.php 或者其他).
attachment.php
single.php
index.php
详细说明,请看WordPress官方文档
http://codex.wordpress.org/Template_Hierarchy

发表在 WordPress | 留下评论

我们是那群充满创意的羊

一年一度的公司年会,照例是总结过去一年的成绩,展望未来一年的发展。但是我今天不准备这么干,我想在这里做一个小小的演讲,演讲的题目是 — 我们是那群充满创意的羊。 继续阅读

发表在 杂记 | 留下评论

老店新开

换了个域名:tesla.ctdz.com.cn

发表在 杂记 | 留下评论

Linux 软raid 1如何规划与灾难恢复方案

1.为何是软raid呢?
Linux 十分适合在中小企业应用,因为价格、系统的稳定性、硬件的成本比起其它操作系统都是十分有优势的,但是管理Linux的人才比较缺,或者这么说吧中小企业要请个Linux管理员不好找。(当然是薪金的问题)其实软raid对于CPU的性能要求比较厉害,但以现在的硬件发展速度,软raid绝对有优势。
2.软raid的优点
我总结了软raid的一些优点:廉洁的数据安全方案、适合各种硬件设备、Linux核心自带功能,不像硬raid重新安装启动程序,不用当心是否支持操作系统、有管理工具查看软raid的状态。
3.软raid的缺点
CPU占用率高、读写速度不如硬raid、灾难恢复复杂、灾难恢复速度不如硬raid。
一  以软raid1方式安装EMOS 1.5 (内部版本)
先看看这篇文章,我觉得还不错哦~~
http://blog.chinaunix.net/u2/82278/showart_2018616.html
看看我的分区
我在VirtualBox下虚拟了两个10G硬盘打算安装Extmail邮件系统,划分如下。
/dev/sda1   /boot
/dev/sdb4   /boot1
/dev/md0   (swap)   [/dev/sda2(512MB)]  [/dev/sdb3 (512MB)]
/dev/md1   (/)          [/dev/sda3(2GB)]      [/dev/sdb2(2GB)]
/dev/md2   (/home) [/dev/sda4(7.2GB)]   [/dev/sdb1(7.2GB)]
Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        1293        1305      104422+  83  Linux
/dev/sda2            1228        1292      522112+  fd  Linux raid autodetect
/dev/sda3             967        1227     2096482+  fd  Linux raid autodetect
/dev/sda4               1         966     7759363+  fd  Linux raid autodetect
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         966     7759363+  fd  Linux raid autodetect
/dev/sdb2             967        1227     2096482+  fd  Linux raid autodetect
/dev/sdb3            1228        1292      522112+  fd  Linux raid autodetect
/dev/sdb4   *        1293        1305      104422+  83  Linux
二 备份boot loder
# dd if=/dev/sda1 of=/dev/sdb4
三 模拟磁盘故障
这里我们模拟第一支硬盘故障坏掉了,我们的 “/” “/home” 都制作了raid1 所以如果第一支硬盘故障坏掉对于操作系统是没有特别影响。
mdadm –manage /dev/md1 -f /dev/sda3
mdadm –manage /dev/md1 -r /dev/sda3
mdadm –manage /dev/md2 -f /dev/sda4
mdadm –manage /dev/md2 -r /dev/sda4
umount /boot
哈哈~~彻底把第一只硬盘搞死了,然后做的是改变grub启动
# groub
> root (hd1,3)
> setup (hd1)
>quit
# shutdown -h now
把坏掉的第一只硬盘拔掉,然后把后备的硬盘(同样是10G的)安装上去。这时候磁盘如下
/dev /sda (全新的硬盘)
/dev /sdb  (原来的硬盘)
启动服务器,进入bios 选择由第二块硬盘/dev /sdb启动系统
在开机菜单中把 root (hd0,0) => root (hd1,3)
但你会发现系统出现错误:(原因是刚刚挂上的新硬盘还未进行分区,固然没有/dev/sda1给你报错啦~)
输入root 密码进入单人维护
# mount -n -o remount,rw /
# vi /etc/fstab
/dev/md1                /                       ext3    defaults        1 1
/dev/md2                /home                   ext3    defaults        1 2
/dev/sda1               /boot                   ext3    defaults        1 2
/dev/sdb4               /boot1                   ext3    defaults        1 2
改为
/dev/md1                /                       ext3    defaults        1 1
/dev/md2                /home                   ext3    defaults        1 2
/dev/sdb4               /boot                   ext3    defaults        1 2
# 然后重启服务器
#这时你可以完全正常地进入操作系统
发现现在的raid状态如下:
Personalities : [raid1] [raid0]
md2 : active raid1 sdb1[1]
7759296 blocks [2/1] [_U]
md0 : inactive sdb3[1]
522048 blocks
md1 : active raid1 sdb2[1]
2096384 blocks [2/1] [_U]
unused devices: <none>
md1 md2 都再缺硬盘的状态
md0 已经挂掉了 “inactive”
把新挂上的硬盘安装之前的顺序分区,然后重新rebuid raid
fdisk /dev/sda
Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        1293        1305      104422+  83  Linux
/dev/sda2            1228        1292      522112+  fd  Linux raid autodetect
/dev/sda3             967        1227     2096482+  fd  Linux raid autodetect
/dev/sda4               1         966     7759363+  fd  Linux raid autodetect
#partprobe
1. 把 rebuid raid “/”  /dev/md1
#mdadm –manage /dev/md1 -a /dev/sda3
# mdadm -D /dev/md1
Rebuild Status : 26% complete
Number   Major   Minor   RaidDevice State
2       8        3        0      spare rebuilding   /dev/sda3
1       8       18        1      active sync   /dev/sdb2
2. 把 rebuid raid “/home”  /dev/md2
#mdadm –manage /dev/md2 -a /dev/sda4
#mdadm -D /dev/md1
Rebuild Status : 4% complete
Number   Major   Minor   RaidDevice State
2       8        4        0      spare rebuilding   /dev/sda4
1       8       17        1      active sync   /dev/sdb1
3. 重新建立”swap” raid
# mdadm -S /dev/md0
# mdadm -Cv /dev/md0 –level=0 –raid-devices=2 /dev/sda2 /dev/sdb3
# mkswap /dev/md0
# swapon /dev/md0
# free -m
total       used       free     shared    buffers     cached
Mem:          4054        354       3700          0          3        106
-/+ buffers/cache:        244       3810
Swap:         1019          0       1019
4. 同步”/boot” 分区
# dd if=/dev/sdb4 of=/dev/sda1
# vi /etc/fstab   转回由第一只硬盘启动
/dev/sdb4               /boot => /dev/sda1               /boot
#grub
>root (hd0,0)
>setup (hd0)
>quit
5. Reboot 看看~~! 所有都十分正常~~~

转自EMOS: enjoyunix

1.为何是软raid呢?

Linux 十分适合在中小企业应用,因为价格、系统的稳定性、硬件的成本比起其它操作系统都是十分有优势的,但是管理Linux的人才比较缺,或者这么说吧中小企业要请个Linux管理员不好找。(当然是薪金的问题)其实软raid对于CPU的性能要求比较厉害,但以现在的硬件发展速度,软raid绝对有优势。

2.软raid的优点

我总结了软raid的一些优点:廉洁的数据安全方案、适合各种硬件设备、Linux核心自带功能,不像硬raid重新安装启动程序,不用当心是否支持操作系统、有管理工具查看软raid的状态。

3.软raid的缺点

CPU占用率高、读写速度不如硬raid、灾难恢复复杂、灾难恢复速度不如硬raid。

一  以软raid1方式安装EMOS 1.5 (内部版本)

先看看这篇文章,我觉得还不错哦~~

http://blog.chinaunix.net/u2/82278/showart_2018616.html

看看我的分区

我在VirtualBox下虚拟了两个10G硬盘打算安装Extmail邮件系统,划分如下。

/dev/sda1   /boot

/dev/sdb4   /boot1

/dev/md0   (swap)   [/dev/sda2(512MB)]  [/dev/sdb3 (512MB)]

/dev/md1   (/)          [/dev/sda3(2GB)]      [/dev/sdb2(2GB)]

/dev/md2   (/home) [/dev/sda4(7.2GB)]   [/dev/sdb1(7.2GB)]

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        1293        1305      104422+  83  Linux

/dev/sda2            1228        1292      522112+  fd  Linux raid autodetect

/dev/sda3             967        1227     2096482+  fd  Linux raid autodetect

/dev/sda4               1         966     7759363+  fd  Linux raid autodetect

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         966     7759363+  fd  Linux raid autodetect

/dev/sdb2             967        1227     2096482+  fd  Linux raid autodetect

/dev/sdb3            1228        1292      522112+  fd  Linux raid autodetect

/dev/sdb4   *        1293        1305      104422+  83  Linux

二 备份boot loder

# dd if=/dev/sda1 of=/dev/sdb4

三 模拟磁盘故障

这里我们模拟第一支硬盘故障坏掉了,我们的 “/” “/home” 都制作了raid1 所以如果第一支硬盘故障坏掉对于操作系统是没有特别影响。

mdadm –manage /dev/md1 -f /dev/sda3

mdadm –manage /dev/md1 -r /dev/sda3

mdadm –manage /dev/md2 -f /dev/sda4

mdadm –manage /dev/md2 -r /dev/sda4

umount /boot

哈哈~~彻底把第一只硬盘搞死了,然后做的是改变grub启动

# groub

> root (hd1,3)

> setup (hd1)

>quit

# shutdown -h now

把坏掉的第一只硬盘拔掉,然后把后备的硬盘(同样是10G的)安装上去。这时候磁盘如下

/dev /sda (全新的硬盘)

/dev /sdb  (原来的硬盘)

启动服务器,进入bios 选择由第二块硬盘/dev /sdb启动系统

在开机菜单中把 root (hd0,0) => root (hd1,3)

但你会发现系统出现错误:(原因是刚刚挂上的新硬盘还未进行分区,固然没有/dev/sda1给你报错啦~)

输入root 密码进入单人维护

# mount -n -o remount,rw /

# vi /etc/fstab

/dev/md1                /                       ext3    defaults        1 1

/dev/md2                /home                   ext3    defaults        1 2

/dev/sda1               /boot                   ext3    defaults        1 2

/dev/sdb4               /boot1                   ext3    defaults        1 2

改为

/dev/md1                /                       ext3    defaults        1 1

/dev/md2                /home                   ext3    defaults        1 2

/dev/sdb4               /boot                   ext3    defaults        1 2

# 然后重启服务器

#这时你可以完全正常地进入操作系统

发现现在的raid状态如下:

Personalities : [raid1] [raid0]

md2 : active raid1 sdb1[1]

7759296 blocks [2/1] [_U]

md0 : inactive sdb3[1]

522048 blocks

md1 : active raid1 sdb2[1]

2096384 blocks [2/1] [_U]

unused devices: <none>

md1 md2 都再缺硬盘的状态

md0 已经挂掉了 “inactive”

把新挂上的硬盘安装之前的顺序分区,然后重新rebuid raid

fdisk /dev/sda

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        1293        1305      104422+  83  Linux

/dev/sda2            1228        1292      522112+  fd  Linux raid autodetect

/dev/sda3             967        1227     2096482+  fd  Linux raid autodetect

/dev/sda4               1         966     7759363+  fd  Linux raid autodetect

#partprobe

1. 把 rebuid raid “/”  /dev/md1

#mdadm –manage /dev/md1 -a /dev/sda3

# mdadm -D /dev/md1

Rebuild Status : 26% complete

Number   Major   Minor   RaidDevice State

2       8        3        0      spare rebuilding   /dev/sda3

1       8       18        1      active sync   /dev/sdb2

2. 把 rebuid raid “/home”  /dev/md2

#mdadm –manage /dev/md2 -a /dev/sda4

#mdadm -D /dev/md1

Rebuild Status : 4% complete

Number   Major   Minor   RaidDevice State

2       8        4        0      spare rebuilding   /dev/sda4

1       8       17        1      active sync   /dev/sdb1

3. 重新建立”swap” raid

# mdadm -S /dev/md0

# mdadm -Cv /dev/md0 –level=0 –raid-devices=2 /dev/sda2 /dev/sdb3

# mkswap /dev/md0

# swapon /dev/md0

# free -m

total       used       free     shared    buffers     cached

Mem:          4054        354       3700          0          3        106

-/+ buffers/cache:        244       3810

Swap:         1019          0       1019

4. 同步”/boot” 分区

# dd if=/dev/sdb4 of=/dev/sda1

# vi /etc/fstab   转回由第一只硬盘启动

/dev/sdb4               /boot => /dev/sda1               /boot

#grub

>root (hd0,0)

>setup (hd0)

>quit

5. Reboot 看看~~! 所有都十分正常~~~

发表在 Linux | 18 条评论

OpenERP 5.0 Ubuntu804安装简介

转自OpenERP 中文社区:ww_great

系统目标:在一台Ubuntu机器上实现OpenERP所有服务器端的模块(这里我们把web-client也当作服务器吧,毕竟是B/S的S端)
步骤:
1. OpenERP-Server 的安装
这个很简单,一般都能搞定,步骤包括:
1)更新安装的ubuntu源,apt-get update,当然如果能把系统提示的补丁都升上去更好了,这里有一个小技巧,就是很多包其实不需要更新的,比如OOo相关的,这样可以少很多文件下载。
2)sudo apt-get install python python-psycopg2 python-reportlab
python-egenix-mxdatetime python-xml python-tz python-pychart
python-pydot python-lxml python-libxslt1 python-vobject
安装依赖的包
中间如果有错误,用–fix-missing搞定
3)安装Postgres数据库
sudo apt-get postgres
创建一个用户,可以操作数据库的:
sudo su – postgres
postgres$ createuser –createdb –no-createrole –pwprompt openuser
上面的openuser可以自己定,是用于openerp-server连接数据库创建帐套使用。
4)解压缩下载的server包,在目录下运行sudo python setup.py install,搞定!
服务器启动命令:open-server -r username -w password –db_host 127.0.0.1
以上参数也可以根据自己的情况设定,启动后可以看到服务器正在监听8070端口和8069端口,没有什么错误就是启动成功了。

2. OpenERP Client安装
这个更简单,直接解压:tar -xvf openerp-client-xxxxxx
sudo python setup.py install,就可以执行openerp-client连接服务器了。
3. OpenERP web安装
这个比较折腾人,主要是turbogears安装的问题。下面的步骤应该能够解决大部分安装问题。
1)将系统升级到最新的包,就是把升级提示要求的包都给装上
2)通过apt-get安装turbogears
sudo apt-get install python-turbogears
中间可能会出现这个问题:
Setting up xxx-xxx (3.x.x) …

pycentral: pycentral pkginstall: not overwriting local files
这个是ubuntu的一个bug,有一个绕过去的解决办法:
打开文件:/etc/python/debian_config,加入一行:overwrite-local = 1
重新安装相应的包,应该就可以了。
3)安装web-client,这一步就比较简单了。
可以直接在命令行:sudo easy_install -U openerp-web,当然前提是你装了easy_install。
如果下载了安装包,可以用类似server的安装方式:sudo python setup.py install
这里顺便说一下,直接解压缩运行start-openerp-web也可以,但是修改config下的default.cfg就死活没用,非要安装以后修改才有效果,安装后修改的地址是:/usr/lib/python2.5/site-packages/openerp-web-*/config/default.cfg
其他的一些说明:
你可能希望直接下载turbogears的tgsetup.py文件进行安装,这个方法我试了N次,一直不成功,主要是有的包下载有问题。有时候是RuleDispatch,有时候是Pyparsing,搞的很郁闷。我有一个ubuntu(虚拟机里)实例就是在pyparsing死活不行,然后我直接根据地址上了sf.net,它下载下来自己安装才搞定了(也是解压缩后: python setup.py install)。因此建议还是通过ubuntu的cn源安装。[这里要感谢Shelly,我之前安装的时候没有apt-get update,结果安装的版本总是1.0.4…..:(
第一次启动client连接服务器的时候都要创建帐套,我用缺省的超级管理员密码admin死活就是不行,然后在client里修改了这个密码,创建帐套才能正常继续。。。。无语… …
就这些了吧,安装过程中可能还会有其他的问题,但是基本上根据上面的步骤应该是可以正常完成了的。另外,作为组织内部独立的服务器,最好还要配置一个DNS,这个比较简单,通过安装bind9并修改几个配置文件就好了。
后续的工作:
1. 创建帐套
2. 选择合适的财务科目模板(现在貌似只有UK和一个什么国家的)
3. 导入翻译,Jack已经提供了一个v5的beta版中文翻译,可以在客户端导入http://shine-it.net/viewthread.php?tid=454&extra=page%3D1
4. 中文科目定制,这个貌似有人提供了http://shine-it.net/viewthread.php?tid=453&extra=page%3D1, 不知道uhlove能不能介绍一下如何搞定乱码,导入的又是哪几个文件?
(自己补充一下, 下载l10n_chart_cn.zip,解压缩到server的addons目录下,重启服务器就可以在创建帐套的时候选择中国的科目了,不过确实有乱码。。。)
5. 进行实验环境实施,创建初始化帐表数据、进行模拟交易记录等… …
6. 看了几个帖子,这些东东也记一下:
安装bazzar,方便安装各模块:
bzr clone lp:~openerp/openobject-addons/trunk addons  等等
安装pgadmin3,用于查看数据库:
sudo apt-get pgadmin3

发表在 OpenERP | 一条评论

debian 5.04 纯apt-get install openerp 安装实录

转自OpenERP 中文社区: wangbuke

1、光盘安装 debian 5.04
2、重启后安装 SSH apt-spy
# apt-get install ssh
# apt-get install apt-spy
3、自动搜索最快的apt 源
# apt-spy -d testing -a Asia
4、升级系统
# apt-get update
# apt-get upgrade

5、安装python
# apt-get install python2.5 python2.5-dev
# apt-get install python-setuptools

6、安装openerp-server,自动安装postgresql等必要软件
# apt-get install openerp-server

7、增加postgresql用户 openerp
# su – postgres
postgres$ createuser –createdb –username postgres –no-createrole –pwprompt openerp
Enter password for new role: XXXXXXXXXX
Enter it again: XXXXXXXXXX
Shall the new role be a superuser? (y/n) y
CREATE ROLE
postgres$ logout
# reboot

8 、安装 openerp-web
# easy_install -U openerp-web

9、开机自动启动openerp-web

# nano /etc/init.d/rc.local
在第一行增加 openerp-web
# reboot
——————–安装 openerp 完成! 下面是安装 phppgadmin,方便管理 ————————————–

10、安装apache2  phppgadmin
安装apache2
# apt-get install apache2
安装php5
# apt-get install php5 libapache2-mod-php5 php5-gd php5-dom php5-pgsql php5-mysql

# apt-get install phppgadmin

创建一个 phppgadmin 专用用户
# su – postgres
postgres$ createuser –createdb –username postgres –no-createrole –pwprompt phppgadmin
Enter password for new role: XXXXXXXXXX
Enter it again: XXXXXXXXXX
Shall the new role be a superuser? (y/n) y
CREATE ROLE
postgres$ logout

修改phppgadmin 配置文件
# nano /etc/phppgadmin/apache.conf
改为
#allow from 127.0.0.0/255.0.0.0
allow from all

# reboot
可进入 http://ip地址/phppgadmin 测试
完成!

发表在 OpenERP | 留下评论

Ubuntu server安装图形界面

可以按照下列步骤安装

wget http://Ubuntu.cn99.com/sources.list.cn99 (注: 对于8.04,链接应该是http://Ubuntu.cn99.com/sources.list.hardy
sudo cp sources.list.cn99 /etc/apt/sources.list
升级并安装x windows(GNOME)桌面环境
sudo apt-get update

  1. 安装 X 窗口系统:sudo apt-get install x-window-system-core。 (注:sudo apt-get install xorg)
  2. 安装登录管理器:sudo apt-get install xdm/gdm/kdm[]。 最常见的图形化登录管理器包括 XDM、GDM、KDM,用户可根据自己的需要选择其中之一。
  3. 安装桌面环境或窗口管理器:sudo apt-get install ubuntu-desktop/kubuntu-desktop/xubuntu-desktop。这将分别安装 GNOME、KDE、XFCE 桌面环境。对于 GNOME、KDE、XFCE 这些桌面环境来说,为了获得更强的定制效果,也可仅安装最基本的组件,如:sudo apt-get install gnome-core/kde-core/xfce4。当然,如果不需要桌面环境,也可选择安装窗口管理器代替。那样的话,可以执行指令 sudo apt-get install fluxbox/icewm/enlightenment/fvwm。
发表在 Linux | 留下评论

经典教程:实战Ubuntu RAID-1安装

英文标题:RAID-1 in My Ubuntu Installation
原文作者:Martti Kuparinen <martti.kuparinen@iki.fi>  更新日期:2006-12-14
来源:http://users.piuha.net/martti/comp/ubuntu/raid.html

翻译:chinakr(http://www.edu-map.com/chinakr)  日期:2007-05-06
来源:http://blog.sina.com.cn/u/551c238e010009im

摘要

这篇文档描述了作者在自己的PC上安装配置Ubuntu 6.06.1 LTS的过程。这台PC有两块一样的SATA硬盘,并被配置为RAID-1,这样做是为了减小使用单块硬盘时磁盘失效的风险。虽然作者使用了RAID-1,但是他仍然坚持定期备份,因为众所周知不应该用RAID来代替一个良好的备份系统。

目录

1. 安装
2. 验证
3. 在磁盘失效后重建

安装

用Ubuntu Alternate安装CD启动,确信安装程序正确发现了两块硬盘(图1)。接下来删除之前Windows使用的所有分区。

http://users.piuha.net/martti/comp/ubuntu/ubuntu1.png

图1  安装程序正确识别出两块硬盘

分别在两块硬盘上创建3个分区:给/分配10GB,给swqp分配500MB,剩下的空间分配给/home。需要注意的是在这一步分区类型应该设置为“RAID物理卷(0xFD)”而不是“Ext3日志文件系统”(图2)。同时还需要注意,两块硬盘的第一个分区都必须标记为可引导(图3,B标志),否则你的系统就必须通过CD才能引导了。

http://users.piuha.net/martti/comp/ubuntu/ubuntu1a.png

图2  设置分区类型和可引导标志

http://users.piuha.net/martti/comp/ubuntu/ubuntu2.png

图3  创建好的分区,其中的B是可引导标志

下一步选择“配置软RAID”,然后保存设置。

我创建了3个MD(multidisk)设备,均配置为2块磁盘和0 hostspace的RAID-1(图4、图5)。

http://users.piuha.net/martti/comp/ubuntu/ubuntu3.png

图4  创建MD设备

http://users.piuha.net/martti/comp/ubuntu/ubuntu4.png

图5  创建RAID-1

这一步需要为RAID-1选择所包含的分区(图6),必须选择两个尺寸完全一致的分区,在这里是:md0=sda1+sdb1,md1=sda2+sdb2,md2=sda3+sdb3。

http://users.piuha.net/martti/comp/ubuntu/ubuntu5.png

图6  设置MD组件(选择分区)

最后为每个MD设备选择文件系统和挂载点。在这里是md0设置为ext3挂载于/,md1设置为swap,md2设置为ext3挂载于/home。从这一步开始,Ubuntu的安装就和普通的安装过程一样了。

http://users.piuha.net/martti/comp/ubuntu/ubuntu6.png

图7  文件系统和挂载点

验证

安装完成后需要验证一下所有东西是不是都真的放在RAID-1磁盘上了(root文件系统、swap和/home)。

martti@ubuntu:~$ grep /dev/md /etc/fstab
/dev/md0        /               ext3    defaults,errors=remount-ro 0       1
/dev/md2        /home           ext3    defaults        0       2
/dev/md1        none            swap    sw              0       0

martti@ubuntu:~$ df -h / /home
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0              9.2G  2.1G  6.7G  24% /
/dev/md2               11G  129M  9.5G   2% /home

下面检查每个RAID磁盘的当前状态。需要注意的是每个mdN包含了哪两个sdXN磁盘,以及每个mdN是怎么显示它的两个磁盘组建的并且是标记为U。更多的细节可以在mdadm工具中找到。

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[0] sdb3[1]
10707200 blocks [2/1] [UU]

md1 : active raid1 sda2[0] sdb2[1]
489856 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
9767424 blocks [2/2] [UU]

martti@ubuntu:~$ sudo mdadm –query –detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri May 12 00:57:28 2006
Raid Level : raid1
Array Size : 9767424 (9.31 GiB 10.00 GB)
Device Size : 9767424 (9.31 GiB 10.00 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Fri May 12 04:38:19 2006
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

UUID : 754cd310:4f102bc3:b590c767:672a9c4e
Events : 0.11700

Number   Major   Minor   RaidDevice State
0       8        1        0      active sync   /dev/sda1
1       8       17        1      active sync   /dev/sdb1

在磁盘失效后重建

这一步我把/dev/sdb拔掉来模拟一次磁盘失效事故。系统依然能够引导,但会提示/dev/sdb1、/dev/sdb2和/dev/sdb3从系统中消失了,/dev/mdN的状态域被标记为“退化”(degraded)。

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[0]
10707200 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
489856 blocks [2/1] [U_]

md0 : active raid1 sda1[0]
9767424 blocks [2/1] [U_]

unused devices:

martti@ubuntu:~$ sudo mdadm –query –detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri May 12 00:57:28 2006
Raid Level : raid1
Array Size : 9767424 (9.31 GiB 10.00 GB)
Device Size : 9767424 (9.31 GiB 10.00 GB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Fri May 12 04:45:52 2006
State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

UUID : 754cd310:4f102bc3:b590c767:672a9c4e
Events : 0.11812

Number   Major   Minor   RaidDevice State
0       8        1        0      active sync   /dev/sda1
1       0        0        -      removed

接下来我把磁盘重新连接上,并命令系统自动重建。重建以后一切再次恢复正常了。

martti@ubuntu:~$ sudo mdadm –add /dev/md0 /dev/sdb1
mdadm: hot added /dev/sdb1

martti@ubuntu:~$ sudo mdadm –add /dev/md1 /dev/sdb2
mdadm: hot added /dev/sdb2

martti@ubuntu:~$ sudo mdadm –add /dev/md2 /dev/sdb3
mdadm: hot added /dev/sdb3

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[2] sda3[0]
10707200 blocks [2/1] [U_]
resync=DELAYED

md1 : active raid1 sda2[0] sdb2[1]
489856 blocks [2/2] [UU]

md0 : active raid1 sdb1[2] sda1[0]
9767424 blocks [2/1] [U_]
[>....................]  recovery =  2.2% (215168/9767424) finish=16.2min speed=9780K/sec

unused devices:

最后我重新安装了引导程序(boot loader),这样即便以后主磁盘(sda)消失了系统也能够引导(即在sdb上安装了GRUB,这样用sdb也能引导系统了)。

martti@ubuntu:~$ sudo grub-install /dev/sda

martti@ubuntu:~$ sudo grub
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

就是这样。接下来回过头去看我的Ubuntu安装指南了,看看配置我新安装的系统有多么简单。

(欢迎转载, 转载请注明作者和出处)

发表在 Linux | 一条评论

我为什么叫特斯拉

这个有点历史了,是在当年申请QQ号时,需要有个名字,本来顺手起一个就是了。碰巧那天正好在看一篇关于特斯拉生平的文章,绝世武功、江湖恩怨、黯然归隐,正是当年的我心目中景仰的人物,于是“特斯拉”就成了我的QQ名字。

当年教我们天线课的老师曾经曰过:每一行都有自己的祖师爷,木匠的祖师爷是鲁班,干我们这一行的祖师爷是麦克斯韦,实际上特斯拉也算是咱们的祖师级人物吧,擅用祖师的名号会不会有些不敬?呵呵。很长一段时间几乎改行当了个半吊子的程序员,本门武功疏于操练,最近的工作与电机有点关系,于是又多见祖师名号,这名字用久了多少会生出点自豪感。1特斯拉=10000高斯,咱要能干到高斯的水平也够了,哈哈

发表在 杂记 | 一条评论