分类: LINUX
2009-07-03 15:14:51
今天我们来做个NAS实验。先来介绍下NAS概念。
NAS(Network Attached Storage:网络附属存储)是一种将分布、独立的数据整合为大型、集中化的,以便于对不同主机和进行访问的。按字面简单说就是连接在网络上, 具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护。其成本远远低于使用服务器存储,而效率却远远高于后者。
在做这个实验之前,我们需要具备以下基础知识,如果有不清楚的地方,请先找一些资料补充一下,否则一会你就会。。。。。。
1。理解Raid的概念,并且会做软Raid. 2 。LVM逻辑盘卷管理 3.。网络文件系统,这里我们使用的是ftp文件共享服务。4。文件权限的使用。5。磁盘配额。
这个实验综合运用了很多的的基础知识,所以有不清楚的地方,一定要好好的复习一下。下面我们一起来做实验吧。
首先我查看下我的硬盘分区情况:
[root@localhost ~]# fdisk -l
Disk /dev/hda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 29 232911 83 Linux
/dev/hda2 30 1686 13309852+ 83 Linux
/dev/hda3 1687 1817 1052257+ 82 Linux swap / Solaris
总共分了三个分区,两个主分区一个交换分区,这时我要加一个扩展分区。因为我要在扩展分区的基础上,继续分出6个区用于做raid。
[root@localhost ~]# fdisk /dev/hda
The number of cylinders for this disk is set to 1958.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/hda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 29 232911 83 Linux
/dev/hda2 30 1686 13309852+ 83 Linux
/dev/hda3 1687 1817 1052257+ 82 Linux swap / Solaris
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e //添加扩展分区
Selected partition 4
First cylinder (1818-1958, default 1818):
Using default value 1818
Last cylinder or +size or +sizeM or +sizeK (1818-1958, default 1958):
Using default value 1958
Command (m for help): p
Disk /dev/hda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 29 232911 83 Linux
/dev/hda2 30 1686 13309852+ 83 Linux
/dev/hda3 1687 1817 1052257+ 82 Linux swap / Solaris
/dev/hda4 1818 1958 1132582+ 5 Extended
Command (m for help): n
First cylinder (1818-1958, default 1818):
Using default value 1818
Last cylinder or +size or +sizeM or +sizeK (1818-1958, default 1958): +100M
Command (m for help): n
First cylinder (1831-1958, default 1831):
Using default value 1831
Last cylinder or +size or +sizeM or +sizeK (1831-1958, default 1958): +100M
Command (m for help): n
First cylinder (1844-1958, default 1844):
Using default value 1844
Last cylinder or +size or +sizeM or +sizeK (1844-1958, default 1958): +100M
Command (m for help): n
First cylinder (1857-1958, default 1857):
Using default value 1857
Last cylinder or +size or +sizeM or +sizeK (1857-1958, default 1958): +100M
Command (m for help): n
First cylinder (1870-1958, default 1870):
Using default value 1870
Last cylinder or +size or +sizeM or +sizeK (1870-1958, default 1958): +100M
Command (m for help): n
First cylinder (1883-1958, default 1883):
Using default value 1883
Last cylinder or +size or +sizeM or +sizeK (1883-1958, default 1958): +100M
Command (m for help): p
Disk /dev/hda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 29 232911 83 Linux
/dev/hda2 30 1686 13309852+ 83 Linux
/dev/hda3 1687 1817 1052257+ 82 Linux swap / Solaris
/dev/hda4 1818 1958 1132582+ 5 Extended
/dev/hda5 1818 1830 104391 83 Linux
/dev/hda6 1831 1843 104391 83 Linux
/dev/hda7 1844 1856 104391 83 Linux
/dev/hda8 1857 1869 104391 83 Linux
/dev/hda9 1870 1882 104391 83 Linux
/dev/hda10 1883 1895 104391 83 Linux
Command (m for help): w
The partition table has been altered!
蓝色的分区就是我新添加的六个分区。
[root@localhost ~]# partprobe /dev/hda //别忘了刷新分区表
下面是通过mdadm这条命令做raid5设备,我将六个分区中的三个用来做md0,
另外的三个用来做md1.这里有一点注意要注意的是划分分区的的时候,大小最好相等,否则只会根据最小的分区算,浪费空间了。至于这条命令的参数意义,如果不清楚,请man 一下好了
[root@localhost ~]# mdadm -C /dev/md0 -l 5 -n 3 /dev/hda{5,6,7}
mdadm: array /dev/md0 started.
查看我们做好的raid设备md0
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri Jul 3 23:24:15 2009
Raid Level : raid5
Array Size : 208640 (203.78 MiB 213.65 MB)
Device Size : 104320 (101.89 MiB 106.82 MB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Fri Jul 3 23:24:27 2009
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : de80a3e1:e28d0770:7a4f094e:622fa608
Events : 0.2
Number Major Minor RaidDevice State
0 3 5 0 active sync /dev/hda5
1 3 6 1 active sync /dev/hda6
2 3 7 2 active sync /dev/hda7
同理我们在做个Raid 5 md1设备,不过在做md1之前,先要创建块个块设备。因为默认情况下,/dev/目录下只有md0.这里要有一点要注意,在没有用mdadm创建raid之前,md0,md1只是一个普通的设备。只是我们在做raid的时候需要这样的块设备,明白了吧。下面这条命令就为我们创建了块设备,注意设备号不要搞错。
[root@localhost ~]# mknod /dev/md1 b 9 1
查看一下是否创建成功
[root@localhost ~]# ll /dev/md*
brw-r----- 1 root disk 9, 0 Jul 3 22:49 /dev/md0
brw-r--r-- 1 root root 9, 1 Jul 3 23:26 /dev/md1
创建另一个raid5
[root@localhost ~]# mdadm -C /dev/md1 -l 5 -n 3 /dev/hda{8,9,10}
接下来我我们要用md0和md1创建两个物理卷。
pvcreate /dev/md0
pvcreate /dev/md1
通过vgcreate创建卷组。
[root@localhost ~]# vgcreate nas /dev/md{0,1}
Volume group "nas" successfully created
//显示一下卷组
[root@localhost ~]# vgdisplay nas
--- Volume group ---
VG Name nas
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 400.00 MB
PE Size 4.00 MB
Total PE 100
Alloc PE / Size 0 / 0
Free PE / Size 100 / 400.00 MB
VG UUID ZDtEbQ-0aaP-ArMK-mnZc-A4ma-xdPA-yiso5s
//创建逻辑卷。
[root@localhost ~]# lvcreate -L 300M -n nas1 nas
Logical volume "nas1" created
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Name /dev/nas/nas1
VG Name nas
LV UUID PNmoKH-iiq8-PSj2-1mTT-Lhl0-fZgA-ruwlus
LV Write Access read/write
LV Status available
# open 0
LV Size 300.00 MB
Current LE 75
Segments 2
Allocation inherit
Read ahead sectors 0
Block device 253:0
//注意别忘了格式化,就像我们的分区一样创建完了,要进行格式化。
[root@localhost ~]# mkfs.ext3 /dev/nas/nas1
这里我们要在/etc/目录下添加个配置文件,这个不用我们手动建立,我们可以拷贝一份模板到这个目录下,按照里面的注释该就好了。
cp /usr/share/doc/mdadm-2.5.4/mdadm.conf-example /etc/mdadm.conf
vim /etc/mdadm.conf
下面的就是我在配置加的内容。注意UUID要用下面这个命令生成
『
[root@localhost ~]# mdadm -D /dev/md0 | grep UUID
UUID : de80a3e1:e28d0770:7a4f094e:622fa608
[root@localhost ~]# mdadm -D /dev/md1 | grep UUID
UUID : 92c5c5e1:b7e81b92:7f8e723d:be00f501
』
DEVICE /dev/hda5 /dev/hda6 /dev/hd7 /dev/hda8 /dev/hda9 /dev/hda10
ARRAY /dev/md0 UUID=de80a3e1:e28d0770:7a4f094e:622fa608
ARRAY /dev/md1 UUID=92c5c5e1:b7e81b92:7f8e723d:be00f501
ARRAY /dev/md0 devices=/dev/hda5,/dev/hda6,/dev/hda7
ARRAY /dev/md1 devices=/dev/hda8,/dev/hda9,/dev/hda10
注意为了我们要在/etc/udev/devices/目录下创建md1块设备。因为我们在下次开机的时候就会提示找不到md1设备,为了能自动创建块设备。所以我们要在这里创建一个块设备。
首先进入/etc/udev目录用 mkdir devices创建目录,在进入devices目录下,用
mdadm -C /dev/md1 -l 5 -n 3 /dev/hda{8,9,10}创建块设备,这样下次开机的时候就不会提示找不到md1了。
为了开机的时候能自动将我们的逻辑卷挂在到NAS目录,我们需要编辑
vim /etc/fstab。不过别忘了如果没有创建NAS目录请创建这个目录啊,这里我是在根目录下创建的NAS目录。
在/etc/fstab文件中加入
/dev/mapper/nas-nas1 /NAS ext3 defaults 0 0