<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>蓝色数据 &#187; 存储备份</title>
	<atom:link href="http://bluedata.org/category/storage-backup/feed/" rel="self" type="application/rss+xml" />
	<link>http://bluedata.org</link>
	<description>奋斗是幸福的……</description>
	<lastBuildDate>Mon, 14 Sep 2009 01:53:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MySQL 复制集群动态添加 slave</title>
		<link>http://bluedata.org/2009/08/13/mysql-replication-cluster-add-slave/</link>
		<comments>http://bluedata.org/2009/08/13/mysql-replication-cluster-add-slave/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 01:37:01 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[快照]]></category>
		<category><![CDATA[集群]]></category>

		<guid isPermaLink="false">http://bluedata.org/?p=241</guid>
		<description><![CDATA[MySQL 数据文件需要存放在 LVM 逻辑卷上才能进行如下操作。
创建快照：
master 作为源：
## 对 master 进行读锁定
mysql> flush tables with read lock;
## 在新终端中（退出锁会失效）创建 MySQL 数据 逻辑卷 的快照
modprobe dm-snapshot
lvcreate -l 486 -s -n mysql_snap /dev/vg/mysql
## 记录当前 binlog 名称及 POS
mysql> show master status;
+------------------+-----------+
&#124; File             &#124; Position  &#124;
+------------------+-----------+
&#124; mysql-bin.000018 &#124; 235667001 &#124;
+------------------+-----------+
## 解锁
mysql> unlock [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL 数据文件需要存放在 LVM 逻辑卷上才能进行如下操作。</p>
<p>创建快照：<br />
master 作为源：<br />
<coolcode linenum="off">## 对 master 进行读锁定<br />
mysql> flush tables with read lock;</p>
<p>## 在新终端中（退出锁会失效）创建 MySQL 数据 逻辑卷 的快照<br />
modprobe dm-snapshot<br />
lvcreate -l 486 -s -n mysql_snap /dev/vg/mysql</p>
<p>## 记录当前 binlog 名称及 POS<br />
mysql> show master status;<br />
+------------------+-----------+<br />
| File             | Position  |<br />
+------------------+-----------+<br />
| mysql-bin.000018 | 235667001 |<br />
+------------------+-----------+</p>
<p>## 解锁<br />
mysql> unlock tables;</coolcode></p>
<p>slave 作为源：</p>
<p><coolcode linenum="off">## 停止 slave 复制进程<br />
mysql -e 'slave stop'</p>
<p>## 创建 MySQL 数据 逻辑卷 的快照<br />
modprobe dm-snapshot<br />
lvcreate -l 486 -s -n mysql_snap /dev/vg/mysql</p>
<p>## 记录当前 master binlog 名称及 POS<br />
mysql -e 'show slave status\G'<br />
Master_Log_File: mysql-bin.000018<br />
Read_Master_Log_Pos: 235667001</p>
<p>## 启动 slave 复制进程<br />
mysql -e 'slave start'</coolcode></p>
<p>## 同步数据库文件<br />
mount /dev/vg/mysql_snap /mnt<br />
rsync -ae ssh --delete --exclude "mysql-bin.*" /mnt/ mysql2:/mysql/ &#038;</p>
<p>## 在源上删除快照<br />
umount /mnt<br />
lvremove -f /dev/vg/mysql_snap<br />
rmmod dm-snapshot</p>
<p>## 在新的 slave 上启动数据库及复制进程<br />
<coolcode linenum="off">/etc/init.d/mysqld start<br />
mysql -e 'slave stop'<br />
mysql -e 'change master to master_host="192.168.0.201", master_user="slave", master_password="slave", master_log_file="mysql-bin.000018", master_log_pos=235667001'<br />
mysql -e 'slave start'</coolcode></p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2009/08/13/mysql-replication-cluster-add-slave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ISCSI 固定设备号</title>
		<link>http://bluedata.org/2009/07/20/iscsi-persistent-id/</link>
		<comments>http://bluedata.org/2009/07/20/iscsi-persistent-id/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 07:36:22 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[ISCSI]]></category>
		<category><![CDATA[udev]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/?p=107</guid>
		<description><![CDATA[ISCSI Initiator 重启后，设备号会发生变化，这会造成许多异常状况。需要把设备号固定下来。
作为试验，先在 ISCSI Target 创建 3 个 LUN ，大小分别为 2G/4G/8G
使用 udev 规则固定设备号
使用 udevinfo 得到设备信息：
udevinfo -ap /sys/block/sdb
  looking at device '/block/sdb':
    KERNEL=="sdb"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{range}=="16"
    ATTR{removable}=="0"
    ATTR{size}=="8388608"
    ATTR{capability}=="12"
    ATTR{stat}=="  [...]]]></description>
			<content:encoded><![CDATA[<p>ISCSI Initiator 重启后，设备号会发生变化，这会造成许多异常状况。需要把设备号固定下来。</p>
<p>作为试验，先在 ISCSI Target 创建 3 个 LUN ，大小分别为 2G/4G/8G</p>
<p>使用 udev 规则固定设备号<br />
使用 udevinfo 得到设备信息：<br />
udevinfo -ap /sys/block/sdb<br />
<coolcode linenum="off">  looking at device '/block/sdb':<br />
    KERNEL=="sdb"<br />
    SUBSYSTEM=="block"<br />
    DRIVER==""<br />
    ATTR{range}=="16"<br />
    ATTR{removable}=="0"<br />
    ATTR{size}=="8388608"<br />
    ATTR{capability}=="12"<br />
    ATTR{stat}=="      45      175     1760      144        0        0        0        0        0      104      144"<br />
...<br />
</coolcode><br />
根据容量大小固定设备号：<br />
vi /etc/udev/rules.d/10-persistant-iscsi.rules<br />
<coolcode linenum="off">KERNEL=="sd*", ATTR{size}=="4194304", NAME="sdb"<br />
KERNEL=="sd*", ATTR{size}=="8388608", NAME="sdc"<br />
KERNEL=="sd*", ATTR{size}=="16777216", NAME="sdd"</coolcode></p>
<p>在 /dev/sdc 创建两个分区： sdc1 sdc2</p>
<p>fdisk -l 查看正常：<br />
<coolcode linenum="off">Disk /dev/sdb: 2147 MB, 2147483648 bytes<br />
67 heads, 62 sectors/track, 1009 cylinders<br />
Units = cylinders of 4154 * 512 = 2126848 bytes<br />
Disk identifier: 0x00000000</p>
<p>Disk /dev/sdb doesn't contain a valid partition table</p>
<p>Disk /dev/sdc: 4294 MB, 4294967296 bytes<br />
133 heads, 62 sectors/track, 1017 cylinders<br />
Units = cylinders of 8246 * 512 = 4221952 bytes<br />
Disk identifier: 0xefe87fb7</p>
<p>   Device Boot      Start         End      Blocks   Id  System<br />
/dev/sdc1               1          25      103044   83  Linux<br />
/dev/sdc2              26         121      395808   83  Linux</p>
<p>Disk /dev/sdd: 8589 MB, 8589934592 bytes<br />
64 heads, 32 sectors/track, 8192 cylinders<br />
Units = cylinders of 2048 * 512 = 1048576 bytes<br />
Disk identifier: 0x00000000</p>
<p>Disk /dev/sdd doesn't contain a valid partition table</coolcode></p>
<p>但分区的块设备还是混乱的：<br />
ll /dev/sd*<br />
<coolcode linenum="off">brw-rw---- 1 root disk 8, 32 Jul 20 14:11 /dev/sdb<br />
brw-rw---- 1 root disk 8, 17 Jul 20 14:11 /dev/sdb1<br />
brw-rw---- 1 root disk 8, 18 Jul 20 14:11 /dev/sdb2<br />
brw-rw---- 1 root disk 8, 16 Jul 20 14:11 /dev/sdc<br />
brw-rw---- 1 root disk 8, 48 Jul 20 14:11 /dev/sdd</coolcode></p>
<p>/dev/disk 下相应的链接也就是混乱的。</p>
<p>创建文件系统也会出错：<br />
<coolcode linenum="off">mkfs -t ext3 /dev/sdc1<br />
mke2fs 1.41.3 (12-Oct-2008)<br />
Could not stat /dev/sdc1 --- No such file or directory</p>
<p>The device apparently does not exist; did you specify it correctly?</coolcode></p>
<p>使用 LVM 测试：<br />
<coolcode linenum="off">ll /dev/sd*<br />
brw-rw---- 1 root disk 8, 16 Jul 20 14:26 /dev/sdb<br />
brw-rw---- 1 root disk 8, 48 Jul 20 14:26 /dev/sdc<br />
brw-rw---- 1 root disk 8, 32 Jul 20 14:26 /dev/sdd</p>
<p>pvcreate /dev/sdb /dev/sdc /dev/sdd<br />
vgcreate test /dev/sdb /dev/sdc /dev/sdd<br />
lvcreate -L 2G -n /dev/test/test<br />
mkfs -t ext3 /dev/test/test</p>
<p>/etc/init.d/open-iscsi restart<br />
ll /dev/sd*<br />
brw-rw---- 1 root disk 8, 48 Jul 20 14:27 /dev/sdb<br />
brw-rw---- 1 root disk 8, 16 Jul 20 14:27 /dev/sdc<br />
brw-rw---- 1 root disk 8, 64 Jul 20 14:27 /dev/sdd</p>
<p>mount -t ext3 /dev/test/test /mnt<br />
mount: wrong fs type, bad option, bad superblock on /dev/mapper/test-test,<br />
       missing codepage or helper program, or other error<br />
       In some cases useful info is found in syslog - try<br />
       dmesg | tail  or so</coolcode></p>
<p>结论：使用 udev 规则固定 iscsi 设备号是不可行的。</p>
<p>使用 DMIO(multipath I/O) 固定设备号<br />
apt-get install multipath-tools<br />
The following NEW packages will be installed:<br />
  dmsetup kpartx libaio1 multipath-tools</p>
<p>multipath -v3 得到设备信息后修改 /etc/multipath.conf ，如下：<br />
<coolcode linenum="off">blacklist {<br />
  devnode "^sda"<br />
}</p>
<p>defaults {<br />
  user_friendly_names yes<br />
  udev_dir /dev<br />
  path_grouping_policy multibus<br />
  failback immediate<br />
  no_path_retry fail<br />
}</p>
<p>multipaths {<br />
  multipath {<br />
    wwid 149455400000000000000000001000000c10600000d000000<br />
    alias mpath0<br />
    path_grouping_policy multibus<br />
    path_checker tur<br />
    path_selector "round-robin 0"<br />
  }<br />
}</p>
<p>multipaths {<br />
  multipath {<br />
    wwid 149455400000000000000000002000000f20600000d000000<br />
    alias mpath1<br />
    path_grouping_policy multibus<br />
    path_checker tur<br />
    path_selector "round-robin 0"<br />
  }<br />
}</p>
<p>multipaths {<br />
  multipath {<br />
    wwid 149455400000000000000000003000000060700000d000000<br />
    alias mpath2<br />
    path_grouping_policy multibus<br />
    path_checker tur<br />
    path_selector "round-robin 0"<br />
  }<br />
}</p>
<p>devices {<br />
  device {<br />
    vendor "IET"<br />
    product "VIRTUAL-DISK"<br />
    path_grouping_policy multibus<br />
  }<br />
}</coolcode></p>
<p>/etc/init.d/multipath-tools restart</p>
<p><coolcode linenum="off">multipath -l<br />
mpath2 (149455400000000000000000003000000060700000d000000) dm-4 IET     ,VIRTUAL-DISK<br />
[size=8.0G][features=0][hwhandler=0]<br />
\_ round-robin 0 [prio=0][active]<br />
 \_ 3:0:0:3 sdc 8:32  [active][undef]<br />
mpath1 (149455400000000000000000002000000f20600000d000000) dm-5 IET     ,VIRTUAL-DISK<br />
[size=4.0G][features=0][hwhandler=0]<br />
\_ round-robin 0 [prio=0][active]<br />
 \_ 1:0:0:2 sdd 8:48  [active][undef]<br />
mpath0 (149455400000000000000000001000000c10600000d000000) dm-3 IET     ,VIRTUAL-DISK<br />
[size=2.0G][features=0][hwhandler=0]<br />
\_ round-robin 0 [prio=0][active]<br />
 \_ 2:0:0:1 sdb 8:16  [active][undef]</p>
<p>/etc/init.d/open-iscsi restart</p>
<p>multipath -l<br />
mpath2 (149455400000000000000000003000000060700000d000000) dm-5 IET     ,VIRTUAL-DISK<br />
[size=8.0G][features=0][hwhandler=0]<br />
\_ round-robin 0 [prio=0][active]<br />
 \_ 6:0:0:3 sdd 8:48  [active][undef]<br />
mpath1 (149455400000000000000000002000000f20600000d000000) dm-3 IET     ,VIRTUAL-DISK<br />
[size=4.0G][features=0][hwhandler=0]<br />
\_ round-robin 0 [prio=0][active]<br />
 \_ 4:0:0:2 sdb 8:16  [active][undef]<br />
mpath0 (149455400000000000000000001000000c10600000d000000) dm-4 IET     ,VIRTUAL-DISK<br />
[size=2.0G][features=0][hwhandler=0]<br />
\_ round-robin 0 [prio=0][active]<br />
 \_ 5:0:0:1 sdc 8:32  [active][undef]</p>
<p>ll /dev/mapper/mpath*<br />
brw-rw---- 1 root disk 254, 4 Jul 20 14:55 /dev/mapper/mpath0<br />
brw-rw---- 1 root disk 254, 3 Jul 20 14:55 /dev/mapper/mpath1<br />
brw-rw---- 1 root disk 254, 5 Jul 20 14:55 /dev/mapper/mpath2</coolcode></p>
<p>对 mpath 块设备操作即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2009/07/20/iscsi-persistent-id/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ChinaUnix 2009 6.27 成都站技术沙龙《网站集群架构》演讲的 PPT</title>
		<link>http://bluedata.org/2009/06/28/chinaunix-chengdu-cluster-ppt/</link>
		<comments>http://bluedata.org/2009/06/28/chinaunix-chengdu-cluster-ppt/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 05:06:40 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[应用技术]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[架构]]></category>
		<category><![CDATA[集群]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/?p=99</guid>
		<description><![CDATA[第一次演讲，讲的不好。内容比较宽泛，很多一笔带过了，有些内容可以在以后详细写一下。
为方便各操作系统下的阅读，转成了 pdf 文件。下载地址如下：
网站集群架构.pdf
]]></description>
			<content:encoded><![CDATA[<p>第一次演讲，讲的不好。内容比较宽泛，很多一笔带过了，有些内容可以在以后详细写一下。</p>
<p>为方便各操作系统下的阅读，转成了 pdf 文件。下载地址如下：</p>
<p><a href="http://bluedata.org/wp-content/uploads/2009/06/cluster.pdf" target="_blank">网站集群架构.pdf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2009/06/28/chinaunix-chengdu-cluster-ppt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CentOS4.6 安装配置 GFS</title>
		<link>http://bluedata.org/2008/08/28/centos4-gfs/</link>
		<comments>http://bluedata.org/2008/08/28/centos4-gfs/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 07:28:18 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[gfs]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/?p=81</guid>
		<description><![CDATA[在 /etc/hosts 文件添加：
192.168.0.171   centos4-1
192.168.0.172   centos4-2
添加 yum 源
cd /etc/yum.repos.d/
wget http://mirror.centos.org/centos/4/csgfs/CentOS-csgfs.repo
更新系统
yum -y update
安装 Red Hat Cluster Suite with DLM 所需要的包：
yum install ccs cman-kernel-smp dlm dlm-kernel-smp fence iddev magma magma-plugins gulm perl-Net-Telnet
安装 Red Hat GFS 所需要的包：
yum install GFS GFS-kernel-smp lvm2-cluster
配置 cluster
vi /etc/cluster/cluster.conf


























配置 fence
cd /sbin
mv fence_manual fence_manual~
vi /sbin/fence_manual
#!/bin/sh
exit 0
在集群开始前插入模块
vi /etc/sysconfig/cluster
modprobe lock_dlm
modprobe gfs
启动 cluster
service ccsd start
service [...]]]></description>
			<content:encoded><![CDATA[<p>在 /etc/hosts 文件添加：<br />
192.168.0.171   centos4-1<br />
192.168.0.172   centos4-2</p>
<p>添加 yum 源<br />
cd /etc/yum.repos.d/<br />
wget http://mirror.centos.org/centos/4/csgfs/CentOS-csgfs.repo</p>
<p>更新系统<br />
yum -y update</p>
<p>安装 Red Hat Cluster Suite with DLM 所需要的包：<br />
yum install ccs cman-kernel-smp dlm dlm-kernel-smp fence iddev magma magma-plugins gulm perl-Net-Telnet</p>
<p>安装 Red Hat GFS 所需要的包：<br />
yum install GFS GFS-kernel-smp lvm2-cluster</p>
<p>配置 cluster<br />
vi /etc/cluster/cluster.conf<br />
<coolcode linenum="off"><br />
<?xml version="1.0"?><br />
<cluster name="alpha_cluster" config_version="1"></p>
<p><cman two_node="1" expected_votes="1"><br />
</cman></p>
<p><clusternodes><br />
<clusternode name="centos4-1" votes="1"><br />
<fence><br />
<method name="single"><br />
<device name="human" ipaddr="192.168.0.171"/><br />
</method><br />
</fence><br />
</clusternode></p>
<p><clusternode name="centos4-2" votes="1"><br />
<fence><br />
<method name="single"><br />
<device name="human" ipaddr="192.168.0.172"/><br />
</method><br />
</fence><br />
</clusternode><br />
</clusternodes></p>
<p><fencedevices><br />
<fencedevice name="human" agent="fence_manual"/><br />
</fencedevices></p>
<p></cluster><br />
</coolcode></p>
<p>配置 fence<br />
cd /sbin<br />
mv fence_manual fence_manual~<br />
vi /sbin/fence_manual<br />
#!/bin/sh<br />
exit 0</p>
<p>在集群开始前插入模块<br />
vi /etc/sysconfig/cluster<br />
modprobe lock_dlm<br />
modprobe gfs</p>
<p>启动 cluster<br />
service ccsd start<br />
service cman start<br />
service fenced start</p>
<p>检查一下是否正常<br />
ccs_tool lsnode<br />
<coolcode linenum="off"><br />
Cluster name: alpha_cluster, config_version: 1</p>
<p>Nodename                        Votes Nodeid Iface Fencetype<br />
centos4-1                          1               human<br />
centos4-2                          1               human<br />
</coolcode></p>
<p>ccs_tool lsfence<br />
<coolcode linenum="off"><br />
Name             Agent<br />
human            fence_manual<br />
</coolcode></p>
<p>cman_tool services<br />
<coolcode linenum="off"><br />
Service          Name                              GID LID State     Code<br />
Fence Domain:    "default"                           3   2 run       -<br />
[2 1]<br />
</coolcode></p>
<p>配置 clvm<br />
vi /etc/lvm/lvm.conf<br />
locking_type = 3</p>
<p>service clvmd start</p>
<p>设置开机自启动<br />
ntsysv<br />
选中 clvmd<br />
可以把不用的 lock_gulmd 和 scsi_reserve 去掉。</p>
<p>只在一个节点上执行如下操作：<br />
pvcreate /dev/sda<br />
vgcreate vg /dev/sda<br />
lvcreate -l 18431 -n lv1 vg<br />
gfs_mkfs -j 2 -p lock_dlm -t alpha_cluster:gfs /dev/vg/lv1</p>
<p>挂载后即可使用<br />
mount -t gfs /dev/vg/lv1 /mnt<br />
可以写入 /etc/rc.local 开机自动挂载。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/08/28/centos4-gfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 安装过程中使用 softraid 和 LVM</title>
		<link>http://bluedata.org/2008/06/24/centos-install-with-softraid-lvm/</link>
		<comments>http://bluedata.org/2008/06/24/centos-install-with-softraid-lvm/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 06:30:14 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[mdadm]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/centos-install-with-softraid-lvm/</guid>
		<description><![CDATA[磁盘分区设置开始时 Alt+F2 切换到 shell 进行如下操作：
fdisk /dev/sda
分两个主分区， sda1 100M ，剩下的全给 sda2 ，并且把分区类型都设为 fd
/dev/sdb 也做同样操作。 
创建 RAID1
mdadm -C /dev/md0 -l1 -n2 -c128 /dev/sd[a,b]1
mdadm -C /dev/md1 -l1 -n2 -c128 /dev/sd[a,b]2
创建 VG
lvm pvcreate /dev/md1
lvm vgcreate vg0 /dev/md1
然后 Alt+F1 切换回安装界面继续使用 Disk Druid 进行分区操作：
编辑 /dev/md0 ，格式化为 ext3 ，挂载点设为 /boot
在 vg0 上添加逻辑卷挂载根 swap 及其它目录。
安装完成进入系统后执行如下操作：
grub
> device (hd0) /dev/sda
> root (hd0,0)
> setup (hd0)
> device [...]]]></description>
			<content:encoded><![CDATA[<p>磁盘分区设置开始时 Alt+F2 切换到 shell 进行如下操作：<br />
fdisk /dev/sda<br />
分两个主分区， sda1 100M ，剩下的全给 sda2 ，并且把分区类型都设为 fd<br />
/dev/sdb 也做同样操作。 </p>
<p>创建 RAID1<br />
mdadm -C /dev/md0 -l1 -n2 -c128 /dev/sd[a,b]1<br />
mdadm -C /dev/md1 -l1 -n2 -c128 /dev/sd[a,b]2</p>
<p>创建 VG<br />
lvm pvcreate /dev/md1<br />
lvm vgcreate vg0 /dev/md1</p>
<p>然后 Alt+F1 切换回安装界面继续使用 Disk Druid 进行分区操作：<br />
编辑 /dev/md0 ，格式化为 ext3 ，挂载点设为 /boot<br />
在 vg0 上添加逻辑卷挂载根 swap 及其它目录。</p>
<p>安装完成进入系统后执行如下操作：<br />
grub<br />
> device (hd0) /dev/sda<br />
> root (hd0,0)<br />
> setup (hd0)<br />
> device (hd1) /dev/sdb<br />
> root (hd1,0)<br />
> setup (hd1)</p>
<p>如果不能引导，重新用光盘引导系统， linux rescue 进入修复模式执行以上操作。</p>
<p>更换从盘 sdb ：<br />
进入系统后执行 fdisk /dev/sdb ，创建和安装系统时一样的分区结构。</p>
<p>然后重新加入 RAID<br />
mdadm /dev/md0 --add /dev/sdb1<br />
mdadm /dev/md1 --add /dev/sdb2</p>
<p>再把 grub 写入 MBR<br />
grub<br />
> device (hd1) /dev/sdb<br />
> root (hd1,0)<br />
> setup (hd1)</p>
<p>更换主盘 sda 需要互换 sda 和 sdb 的数据线接口再进行上述操作。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/06/24/centos-install-with-softraid-lvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS5.1 mdadm 及 LVM 的试验</title>
		<link>http://bluedata.org/2008/04/03/centos-mdadm-lvm/</link>
		<comments>http://bluedata.org/2008/04/03/centos-mdadm-lvm/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 10:32:56 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[mdadm]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/centos-mdadm-lvm/</guid>
		<description><![CDATA[有这样一个需求：为内部网络的 PC 提供共享存储、备份，没有太强的读写压力，资金投入也有限，但需要够安全，而且为逐渐增长的数据量考虑，需要扩容方便。
于是，打算通过 mdadm 和 LVM 来实现。用这样的硬件：内部空间够大，电源够强劲，扇热要好，支持多个 SATA 接口的塔式机。
为了不浪费空间，用一块小硬盘装系统，比如一块 20G 的 IDE 硬盘。3块别的老 PC 上拆下来 80G SATA 硬盘。
在 VMware 上模拟了一下。因为需要模拟 SATA 硬盘，建立虚拟机时用了 SCSI 硬盘。要选择 RedHat Enterprise 版才能支持 SCSI 硬盘。
使用 VMware-gsx-server-3.2.1 发现在较大的（试验了 160G/250G）虚拟硬盘上的 RAID5 recovery 到尾声时会死机，重启后又要从头再来，但依然会死机，周而复始。换成 VMware-server-1.0.3 后就没有问题了。
在 hda 安装了 CentOS 5.1 ，最小化安装。安装过程没有对 sda, sdb, sdc 进行分区。
用 mdadm 创建 RAID
# mdadm -C /dev/md0 -l5 -n3 -c128 [...]]]></description>
			<content:encoded><![CDATA[<p>有这样一个需求：为内部网络的 PC 提供共享存储、备份，没有太强的读写压力，资金投入也有限，但需要够安全，而且为逐渐增长的数据量考虑，需要扩容方便。<br />
于是，打算通过 mdadm 和 LVM 来实现。用这样的硬件：内部空间够大，电源够强劲，扇热要好，支持多个 SATA 接口的塔式机。<br />
为了不浪费空间，用一块小硬盘装系统，比如一块 20G 的 IDE 硬盘。3块别的老 PC 上拆下来 80G SATA 硬盘。</p>
<p>在 VMware 上模拟了一下。因为需要模拟 SATA 硬盘，建立虚拟机时用了 SCSI 硬盘。要选择 RedHat Enterprise 版才能支持 SCSI 硬盘。<br />
使用 VMware-gsx-server-3.2.1 发现在较大的（试验了 160G/250G）虚拟硬盘上的 RAID5 recovery 到尾声时会死机，重启后又要从头再来，但依然会死机，周而复始。换成 VMware-server-1.0.3 后就没有问题了。<br />
在 hda 安装了 CentOS 5.1 ，最小化安装。安装过程没有对 sda, sdb, sdc 进行分区。</p>
<p>用 mdadm 创建 RAID<br />
# mdadm -C /dev/md0 -l5 -n3 -c128 /dev/sd[a,b,c]<br />
参数所代表的意思可以用 man mdadm 查看。<br />
基本命令<br />
# mdadm -A /dev/md0  #启动阵列<br />
# mdadm -S /dev/md0  #停止阵列（停止前必须先 umount）<br />
# mdadm -D /dev/md0  #显示阵列详细信息</p>
<p># watch "cat /proc/mdstat"<br />
可以看到 RAID 的 recovery 过程。<br />
此时 RAID 已经可以使用了。</p>
<p>LVM 初始化<br />
# vgscan<br />
创建 PV<br />
# pvcreate /dev/md0<br />
创建 VG<br />
# vgcreate vga /dev/md0<br />
创建 LV<br />
# lvcreate -l 40959 -n lv1 vga<br />
在 LV 上建立文件系统<br />
# mkfs -t ext3 -L /data /dev/vga/lv1<br />
挂载<br />
# mkdir /data<br />
# mount -t ext3 -o defaults /dev/vga/lv1 /data<br />
测试<br />
# cd /data<br />
# dd if=/dev/zero of=test bs=1024k count=1k<br />
# dd if=test of=/dev/null</p>
<p>recovery 结束后，生成 /etc/mdadm.conf 文件，在系统重启后自动启用 RAID<br />
# mdadm -Ds > /etc/mdadm.conf<br />
编辑 /etc/mdadm.conf 文件，在顶部加入如下一行：<br />
DEVICE /dev/sd*</p>
<p>在 /etc/fstab 尾部加入一行<br />
LABEL=/data             /data                   ext3    defaults        0 0<br />
重启后自动挂载。</p>
<p>接着，模拟这样一种状况：为了扩容，要给 RAID 加入一块硬盘。<br />
关机，给 VM 添加一块 80G 的 SCSI 硬盘后启动。<br />
给 RAID 添加硬盘<br />
# mdadm /dev/md0 -a /dev/sdd<br />
此时，新添加的硬盘会被作为 spare<br />
把 RAID 设备设置为4个，使用新硬盘<br />
# mdadm -G /dev/md0 -n4<br />
扩充 PV<br />
# pvresize /dev/md0<br />
扩充 LV<br />
# lvextend -l +20480 /dev/vga/lv1<br />
扩大文件系统大小<br />
# resize2fs /dev/vga/lv1<br />
此命令可在 mount 时操作。并且同时 dd 模拟写入和读取文件，除了速度变慢，没有发现异常。</p>
<p>再来模拟这样一种情况：空间又被用完了，需要更大的存储空间，再找来3块 160G 的硬盘扩容。为了安全，还是把这三块硬盘组成 RAID5 。<br />
关机，给 VM 添加三块 160G 的 SCSI 硬盘后启动。<br />
CentOS5(RHEL5) 使用了 udev 来管理系统设备文件名，/dev 目录下只有 md0，需要手动建立 RAID 设备。<br />
# mknod /dev/md1 b 9 1<br />
# chown root:disk /dev/md1<br />
# chmod 640 /dev/md1<br />
为了在重启后能自动创建 md1 ，还需如下设置<br />
# mkdir /etc/udev/devices<br />
# cp -a /dev/md1 /etc/udev/devices/</p>
<p>建立 RAID<br />
# mdadm -C /dev/md1 -l5 -n3 -c128 /dev/sd[e,f,g]</p>
<p>创建 PV<br />
# pvcreate /dev/md1<br />
扩充 VG<br />
# vgextend vga /dev/md1<br />
扩充 LV<br />
# lvextend -l +81919 /dev/vga/lv1<br />
扩充分区大小：<br />
# resize2fs /dev/vga/lv1<br />
此间，继续使用 dd 模拟读写，没有问题。<br />
把第二个 RAID 的配置也写入配置文件<br />
# mdadm -Ds | grep md1 >> /etc/mdadm.conf</p>
<p>模拟设备损坏的情况<br />
将 /dev/sdb 标记为已损坏的设备<br />
# mdadm /dev/md0 -f /dev/sdb<br />
移除损坏的设备<br />
# mdadm /dev/md0 -r /dev/sdb<br />
此时可用 dd 模拟读写。<br />
更换设备并重新添加到 RAID 中<br />
# mdadm /dev/md0 -a /dev/sdb<br />
会重新 recovery ，同样，可以 dd 模拟下读写。</p>
<p>如果发现缺失某个设备后 RAID 不能启动，可以使用剩余设备启动 RAID<br />
# mdadm -A --run /dev/md1 /dev/sde /dev/sdf</p>
<p>此后又再给 md1 添加了一块硬盘 sdh 进行相应测试，还是正常的。</p>
<p>特殊情况，去掉一个 PV<br />
# umount /data<br />
# resize2fs -f /dev/vga/lv1 240G<br />
# lvreduce -l -81919 /dev/vga/lv1<br />
# vgreduce vga /dev/md1<br />
不建议在生产系统上减小 LV<br />
这本来是想用来试验大 PV 替换小 PV 的，但为了安全，还是把老 LV 的数据复制到新的 LV 后再做打算。</p>
<p>有了更大的硬盘（250G*4, VMware 只能创建小于 256G 的虚拟硬盘）用来扩容，为了留出机箱空间并降低电力消耗，需要把老硬盘上的数据转移到新硬盘。<br />
先用新硬盘组成的 RAID5<br />
# mknod /dev/md2 b 9 2<br />
# chown root:disk /dev/md2<br />
# chmod 640 /dev/md2<br />
# cp -a /dev/md2 /etc/udev/devices/<br />
# mdadm -C /dev/md2 -l5 -n4 -c128 /dev/sd[i,j,k,l]<br />
# mdadm -Ds | grep md2 >> /etc/mdadm.conf</p>
<p>依然使用 LVM<br />
# pvcreate /dev/md2<br />
# vgcreate vg0 /dev/md2<br />
# lvcreate -l 191999 -n lv1 vg0<br />
# mkfs -t ext3 /dev/vg0/lv1</p>
<p>把 /dev/vg0/lv1 挂载上后便可以复制数据了，cp, rsync 都行。</p>
<p>当有大量小文件时，用 dd 复制，并把块设置的大些，速度会非常快。<br />
为保证数据同步，先卸载<br />
# umount /data<br />
然后复制<br />
# dd if=/dev/vga/lv1 of=/dev/vg0/lv1 bs=16MB<br />
用 dd 复制还可以跳过 mkfs 的过程。<br />
在 VMware 中，就算没有使用预分配空间的磁盘模式，也会进行完全复制填满磁盘空间。可以在复制开始一会儿后就结束 dd 进程，节约空间和时间。</p>
<p>挂载，检查一下数据完整性<br />
# mount -t ext3 -o defaults /dev/vg0/lv1 /mnt</p>
<p>用 dd 复制会把新的 LV 容量变成和老的一样大，需要调整容量<br />
# resize2fs /dev/vg0/lv1</p>
<p>没有问题的话，就修改 LV 卷标，以便系统重启后能挂载新的 LV<br />
# e2label /dev/vga/lv1 /backup<br />
# e2label /dev/vg0/lv1 /data</p>
<p>如果要把老的 LV 转移到另外的机器上，需要备份 LVM 卷组信息以及 mdadm 的配置<br />
先查看一下 /etc/lvm/backup/vga 是否存在，没有的话就创建备份<br />
# vgcfgbackup<br />
把 /etc/lvm/backup/vga 和 /etc/mdadm.conf 备份到远程主机上。<br />
这还可以用于恢复存储服务器操作系统崩溃而导致的 LVM 不可用。比如 hda 损坏了。</p>
<p>重装系统时，千万不要对 sd* 进行操作—重建分区表，这会导致 LVM 信息的丢失。<br />
在真实设备上操作时，为了安全，可以先安装完系统再给硬盘通电。</p>
<p>先恢复 RAID<br />
把 mdadm.conf 恢复到新系统的 /etc 目录下，启动 RAID<br />
# mdadm -A /dev/md0<br />
# mdadm -A /dev/md1<br />
再恢复 LVM<br />
# vgcfgrestore -f vga vga<br />
第一个 vga 是备份的文件名，第二个是要还原的 Volume Group Name 。如果 vga 这个卷组名被占用了，需要重命名。<br />
# vgscan<br />
# pvscan<br />
然后启动 VG<br />
# vgchange -a y vga<br />
再扫描 LV<br />
# lvscan<br />
恢复完成，可以挂载并使用了。</p>
<p>至此，VMware 试验完成，可在真实硬件设备上试验了。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/04/03/centos-mdadm-lvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux 备份时排除目录</title>
		<link>http://bluedata.org/2007/10/09/linux-backup-exclude-dir/</link>
		<comments>http://bluedata.org/2007/10/09/linux-backup-exclude-dir/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 03:54:59 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[exclude]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[备份]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/backup-exclude-dir/</guid>
		<description><![CDATA[tar 备份 Linux 系统的时候用了这样的命令：
tar -cjpvf /mnt/winh/linux.tar.bz2 / --exclude=/mnt --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/tmp
恢复的时候：
tar -xjpvf /mnt/winh/linux.tar.bz2 -C /
使用 rsync 备份目录时也用 --exclude="/sourcedir/tmp" 发现并没有排除掉呢。
还是得用 --exclude "tmp"，路径为相对路径。
rsync -a --exclude "tmp" --exclude "temp" /sourcedir/ /backup/$(date +%Y%m%d --date='1 days ago')
]]></description>
			<content:encoded><![CDATA[<p>tar 备份 Linux 系统的时候用了这样的命令：<br />
tar -cjpvf /mnt/winh/linux.tar.bz2 / --exclude=/mnt --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/tmp</p>
<p>恢复的时候：</p>
<p>tar -xjpvf /mnt/winh/linux.tar.bz2 -C /</p>
<p>使用 rsync 备份目录时也用 --exclude="/sourcedir/tmp" 发现并没有排除掉呢。</p>
<p>还是得用 --exclude "tmp"，路径为相对路径。</p>
<p>rsync -a --exclude "tmp" --exclude "temp" /sourcedir/ /backup/$(date +%Y%m%d --date='1 days ago')</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2007/10/09/linux-backup-exclude-dir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LVM 实战</title>
		<link>http://bluedata.org/2006/07/21/lvm-setup-config/</link>
		<comments>http://bluedata.org/2006/07/21/lvm-setup-config/#comments</comments>
		<pubDate>Fri, 21 Jul 2006 09:47:52 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[e2label]]></category>
		<category><![CDATA[ext2online]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[硬盘扩容]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/lvm/</guid>
		<description><![CDATA[备份服务器的硬盘空间不够了，添加硬盘扩容，为了今后再扩容的方便，使用 LVM 。
 
加挂一块硬盘，并用 fdisk 进行如下分区：
# fdisk -l /dev/sdb
Device Boot         Start          End          Blocks     Id     System
/dev/sdb1                 1        2433      19543041    8e  Linux LVM
/dev/sdb2            2434        4866     19543072+   8e  Linux LVM
/dev/sdb3            4867        7299     19543072+   8e  Linux LVM
/dev/sdb4            7300        9729      19518975    8e  Linux LVM
 
习惯性的分成了四个区，其实只分一个区就行。
 
初始化 LVM ：
# vgscan
建立 PV ：
# pvcreate /dev/sdb1
# pvcreate /dev/sdb2
# pvcreate /dev/sdb3
# pvcreate /dev/sdb4
查看 PV：
# pvdisplay /dev/sdb1
创建 VG [...]]]></description>
			<content:encoded><![CDATA[<p>备份服务器的硬盘空间不够了，添加硬盘扩容，为了今后再扩容的方便，使用 LVM 。<br />
 <br />
加挂一块硬盘，并用 fdisk 进行如下分区：<br />
# fdisk -l /dev/sdb<br />
Device Boot         Start          End          Blocks     Id     System<br />
/dev/sdb1                 1        2433      19543041    8e  Linux LVM<br />
/dev/sdb2            2434        4866     19543072+   8e  Linux LVM<br />
/dev/sdb3            4867        7299     19543072+   8e  Linux LVM<br />
/dev/sdb4            7300        9729      19518975    8e  Linux LVM<br />
 <br />
习惯性的分成了四个区，其实只分一个区就行。<br />
 <br />
初始化 LVM ：<br />
# vgscan</p>
<p>建立 PV ：<br />
# pvcreate /dev/sdb1<br />
# pvcreate /dev/sdb2<br />
# pvcreate /dev/sdb3<br />
# pvcreate /dev/sdb4<br />
查看 PV：<br />
# pvdisplay /dev/sdb1</p>
<p>创建 VG ：<br />
# vgcreate vga /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4<br />
查看 VG ：<br />
# vgdisplay vga<br />
 <br />
创建 LV ：<br />
# lvcreate -l 28899 -n vga1 vga<br />
或者，<br />
# lvcreate -L 112890M -n vga1 vga<br />
-l 以 PE 为单位划分大小，-L 以 MB 为单位划分大小。<br />
查看 LV ：<br />
# lvdisplay /dev/vga/vga1<br />
 <br />
格式化 LV ：<br />
# mke2fs -j -L /backup /dev/vga/vga1<br />
 <br />
挂载：<br />
加入 /etc/fstab ，<br />
LABEL=/backup           /backup                 ext3    defaults        1 2<br />
# mount -a<br />
 <br />
把原来用来备份的分区 (/dev/sda5) 上的数据复制到 /backup 。<br />
 <br />
顺便试了试 LV 改名：<br />
# umount /backup<br />
# lvrename /dev/vga/vga1 /dev/vga/lv1<br />
# lvdisplay /dev/vga/lv1<br />
# e2label /dev/vga/lv1 /backup<br />
# mount -a<br />
LV 上的数据不会受到影响。<br />
 <br />
最后，把 /dev/sda5 也加入 VG ，以扩大容量。<br />
# fdisk /dev/sda<br />
把 /dev/sda5 的 Id 改为 8e ，再把 /dev/sda5 也做成 PV ：<br />
# pvcreate /dev/sda5<br />
扩充 VG ：<br />
# vgextend vga /dev/sda5<br />
扩充 LV ：<br />
# lvextend -l +4765 /dev/vga/lv1<br />
扩充分区大小：<br />
# ext2online /dev/vga/lv1<br />
从 ext2online 这个命令的名字就可以知道，扩容是不需要 umount 的。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2006/07/21/lvm-setup-config/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
