Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2343344
  • 博文数量: 276
  • 博客积分: 5998
  • 博客等级: 大校
  • 技术积分: 5175
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-24 14:43
文章分类

全部博文(276)

文章存档

2014年(25)

2013年(11)

2012年(69)

2011年(167)

2010年(4)

分类: LINUX

2011-01-09 05:50:11

本次实践是在虚拟机中做的
为了使udev自动产生/dev/md1, 需要在/etc/udev目录下建立devices子目录,并手工建立md1,md2。这样udev会在系统启动时把md1,md2复制到/dev目录下
[root@server1 ~]# mkdir /etc/udev/devices
[root@server1 ~]# cd /etc/udev/devices
[root@server1 ~]# mknod md1 b 9 1
 
[root@localhost Desktop]# ll /dev/sd*
brw-r----- 1 root disk 8,   0 2011-01-09 /dev/sda
brw-r----- 1 root disk 8,   1 01-09 04:18 /dev/sda1
brw-r----- 1 root disk 8,   2 01-09 04:18 /dev/sda2
brw-r----- 1 root disk 8,   3 2011-01-09 /dev/sda3
brw-r----- 1 root disk 8,  16 2011-01-09 /dev/sdb
brw-r----- 1 root disk 8,  32 2011-01-09 /dev/sdc
brw-r----- 1 root disk 8,  48 2011-01-09 /dev/sdd
brw-r----- 1 root disk 8,  64 2011-01-09 /dev/sde
brw-r----- 1 root disk 8,  80 2011-01-09 /dev/sdf
brw-r----- 1 root disk 8,  96 2011-01-09 /dev/sdg
brw-r----- 1 root disk 8, 112 2011-01-09 /dev/sdh
brw-r----- 1 root disk 8, 128 2011-01-09 /dev/sdi
加了8块硬盘
创建raid(raid5) 两个
[root@localhost Desktop]# mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
mdadm: array /dev/md0 started.
[root@localhost Desktop]# mdadm -D /dev/md0
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      spare rebuilding   /dev/sdd
       3       8       64        -      spare   /dev/sde

[root@localhost Desktop]# mdadm -C /dev/md1 -l 5 -n 3 -x 1 /dev/sd{f,g,h,i}
mdadm: array /dev/md1 started.
[root@localhost Desktop]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sdh[4] sdi[3](S) sdg[1] sdf[0]
      2097024 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
      [==============>......]  recovery = 73.1% (767104/1048512) finish=0.3min speed=14220K/sec
     
md0 : active raid5 sdd[2] sde[3](S) sdc[1] sdb[0]
      2097024 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
     
unused devices:
[root@localhost Desktop]# mdadm -D -s
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=dd8864e0:f31f7d36:ceb9250e:8f983afb
ARRAY /dev/md1 level=raid5 num-devices=3 spares=1 UUID=d59e7d18:bb86f77e:38ef3775:c62db431
[root@localhost Desktop]# pvcreate /dev/md0
  Physical volume "/dev/md0" successfully created
[root@localhost Desktop]# pvcreate /dev/md1
  Physical volume "/dev/md1" successfully created
[root@localhost Desktop]# pvscan
  /dev/cdrom: open failed: 只读文件系统
  Attempt to close device '/dev/cdrom' which is not open.
  PV /dev/md0                      lvm2 [2.00 GB]
  PV /dev/md1                      lvm2 [2.00 GB]
  Total: 2 [4.00 GB] / in use: 0 [0   ] / in no VG: 2 [4.00 GB]
[root@localhost Desktop]# pvdisplay
[root@localhost Desktop]# vgcreate vg0 /dev/md0
  Volume group "vg0" successfully created
[root@localhost Desktop]# vgextend vg0 /dev/md1
  Attempt to close device '/dev/cdrom' which is not open.
  Volume group "vg0" successfully extended
[root@localhost Desktop]# lvcreate -L 1.2G -n nas vg0
  /dev/cdrom: open failed: 只读文件系统
  Rounding up size to full physical extent 1.20 GB
  Logical volume "nas" created
[root@localhost Desktop]# lvdisplay
[root@localhost Desktop]# ll /dev/vg0/nas
lrwxrwxrwx 1 root root 19 09-02 11:49 /dev/vg0/nas -> /dev/mapper/vg0-nas
[root@localhost Desktop]# ll /dev/mapper/vg0-nas
brw-rw---- 1 root disk 253, 0 09-02 11:49 /dev/mapper/vg0-nas
[root@localhost Desktop]# mkfs.ext3 /dev/vg0/nas
[root@localhost Desktop]# mkdir /NAS
[root@localhost Desktop]# mount /dev/vg0/nas /NAS/
*************此时做一个实验 现在重启一下机器你会发现 机器没发现 raid   /NAS没被挂载******** 
解决方法
mdadm --examine /dev/sdb ****观察一些raid结构
mdadm --examine /dev/sdi
激活raid
mdadm -A /dev/md0 /dev/sd{b,c,d,e}
mdadm -A /dev/md1 /dev/sd{f,g,h,i}
保存raid信息
mdadm -D -s > /etc/mdadm.conf
ll /dev/vg0/nas  发现逻辑卷不见了
解决
    观察逻辑卷的启动方式    [root@stu56 ~]# grep vgchange /etc/rc.sysinit
                action $"Setting up Logical Volume Management:" /sbin/lvm.static vgchange -a y --ignorelockingfailure
激活逻辑卷 vgchange -a y
ll /dev/vg0/nas  发现逻辑卷
正个RAID 拯救过程结束  把mount /dev/vg0/nas /NAS/ 整合到 fstab中 或 rc.loacl 中 即可实现开机自动挂在

[root@localhost Desktop]# lvextend -L +300M /dev/vg0/nas
  /dev/cdrom: open failed: 只读文件系统
  Extending logical volume nas to 1.50 GB
  Logical volume nas successfully resized
[root@localhost Desktop]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg0/nas
  VG Name                vg0
  LV UUID                urTbBl-TPy7-vk9z-PQ1y-ZPkE-nj5b-jH6nuc
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                1.50 GB
  Current LE             383
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
[root@localhost Desktop]# df
/dev/mapper/vg0-nas    1241720     34656   1143988   3% /NAS
[root@localhost Desktop]# resize2fs /dev/vg0/nas
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg0/nas is mounted on /NAS; on-line resizing required
Performing an on-line resize of /dev/vg0/nas to 392192 (4k) blocks.
The filesystem on /dev/vg0/nas is now 392192 blocks long.

[root@localhost Desktop]# umount /NAS/
[root@localhost Desktop]# e2fsck -f /dev/vg0/nas
[root@localhost Desktop]# resize2fs /dev/vg0/nas 800M
[root@localhost Desktop]# mount /dev/vg0/nas /NAS/
[root@localhost Desktop]# umount /NAS/
[root@localhost Desktop]# lvdisplay
[root@localhost Desktop]# lvreduce -L 800M /dev/vg0/nas
[root@localhost Desktop]# lvdisplay

[root@localhost Desktop]# vgreduce vg0 /dev/md0
  Physical volume "/dev/md0" still in use
[root@localhost Desktop]# pvmove /dev/md0
  /dev/md0: Moved: 32.3%
  /dev/md0: Moved: 60.9%
  /dev/md0: Moved: 89.6%
  /dev/md0: Moved: 100.0%
[root@localhost Desktop]# vgreduce vg0 /dev/md0
  Removed "/dev/md0" from volume group "vg0"
[root@localhost Desktop]# vgdisplay

[root@localhost ~]# vim /etc/exports
/NAS  172.16.46.1(rw,no_root_squash)
[root@localhost ~]# service portmap status
portmap (pid 3122) 正在运行...
[root@localhost ~]# service nfs status
rpc.mountd (pid 12186) 正在运行...
nfsd (pid 12183 12182 12181 12180 12179 12178 12177 12176) 正在运行...
rpc.rquotad (pid 12172) 正在运行...
[root@localhost ~]# exportfs -rv
exporting 172.16.46.1:/NAS
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/NAS 172.16.46.1

web服务

在web服务器(172.16.46.1)端操作如下
mount -t nfs 172.16.46.253 /var/www/html
[root@stu56 ~]# tail -n 1 /etc/fstab **********重启机器后可加载
172.16.46.253:/NAS      /var/www/html           nfs     defaults        0 0
重启web服务器,在系统的启动的过程中是先读取rc.sysinit在其中就有读取fstab文件的过程,但是这时网络服务并没有启动,所以此时/NAS并没有挂在
在读取 rc5.d时(以 init 5)为例
[root@stu56 rc5.d]# ls S*net*
S10network  S25netfs  S56xinetd
在启动网络服务(S10network)后,启动了S25netfs 此时可将 。/NAS挂载
也可以在rc.local 中输入mount -t nfs 172.16.46.253:/NAS /var/www/html 也可实现重启开机后挂在/NAS
[root@stu56 ~]# service httpd restart
[root@stu56 ~]# cd /var/www/html
[root@stu56 html]# touch index.html
touch: 无法触碰 “index.html”: 权限不够
说明在web服务器端,对/NAS没有写权限
此时可修改
NAS 服务器端
[root@localhost ~]# vim /etc/exports
/NAS  172.16.46.1(rw,no_root_squash) ****no_root_squash可以使web服务期端到root
[root@localhost ~]# exportfs -rv          进 入/NAS 目录时是以root身份进入NAS服务
exporting 172.16.46.1:/NAS                端的/NAS
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/NAS 172.16.46.1
在web服务器(172.16.46.1)端
[root@stu56 html]# showmount -e 172.16.46.253
Export list for 172.16.46.253:
/NAS 172.16.46.1
[root@stu56 ~]# cd /var/www/html
[root@stu56 html]# touch index.html 此时可以建立了 进入NAS服务器端的/NAS目录可以看到多了一个index.html文件
[root@stu56 html]# cat index.html
hello I'm web
测试一下在web服务器端输入
[root@stu56 html]# elinks -dump 172.16.46.1
   hello I'm web
测表示web服务器已经搭建好
 

ftp服务器(172.16.46.1)搭建
在ftp服务器(172.16.46.1)端操作如下
mount -t nfs 172.16.46.253 /var/ftp/
[root@stu56 ~]# tail -n 1 /etc/fstab **********重启机器后可加载
172.16.46.253:/NAS      /var/ftp/          nfs     defaults        0 0
重启web服务器,在系统的启动的过程中是先读取rc.sysinit在其中就有读取fstab文件的过程,但是这时网络服务并没有启动,所以此时/NAS并没有挂在
在读取 rc5.d时(以 init 5)为例
[root@stu56 rc5.d]# ls S*net*
S10network  S25netfs  S56xinetd
在启动网络服务(S10network)后,启动了S25netfs 此时可将 。/NAS挂载
也可以在rc.local 中输入mount -t nfs 172.16.46.253:/NAS /var/ftp/ 也可实现重启开机后挂在/NAS

[root@stu56 html]# ftp 172.16.46.1 以ftp(匿名)进入/NAS 经测试可得只能下载东西不能上传,说明
ftp没有上传功能
NAS服务器端设置
[root@localhost NAS]# ll -d /NAS/       
drwxr-xr-x 4 root root 4096 09-02 17:19 /NAS/ 可看出/NAS/对NFS服务器端的没有写权限
但是又不能把 o 权限改为rwx 不然ftp登录时会报错ftp登录时不能对所登录的文件具有7的权限
但可以在 /NAS 目录下建一个文upload并赋予读写权限
[root@localhost NAS]# mkdir upload
[root@localhost NAS]# chown upload
[root@localhost NAS]# ll -d upload/
drwxr-xr-x 2 ftp ftp 4096 09-02 17:29 upload/
ftp服务器设置
只改NAS服务器端 文件还不够还需要对  ftp服务端设置vsftpd.conf
[root@stu56 html]# grep anon_upload_enable /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
[root@stu56 html]# service vsftpd restart
[root@stu56 html]# ftp 172.16.46.1 以ftp帐户进入  并cd入upload目录测试 可以上传文件
匿名用户的测试就到此了
以下是本机用户测试
ftp服务器设置
新建两个帐户 test1 test2 test3并设置密码为123
[root@stu56 html]# mkdir /nas
[root@stu56 html]# useradd -d /nas -s /bin/nologin test1
[root@stu56 html]# useradd -d /nas -s /bin/nologin test2
[root@stu56 html]# useradd -d /nas -s /bin/nologin test3
[root@stu56 html]# mount -t nfs 172.16.46.253:/NAS /nas
[root@stu56 ~]# lftp 172.16.46.1 -u test1,123 只要文件具有r权限就可以下载
但是不可以上传,解决方法
进入vsftpd.conf 看看对local用户的设置是否正确,一般按默认就可以了
NAS 服务器设置
[root@localhost NAS]# mkdir ftpsite
[root@localhost NAS]# chmod  o+w ftpsite/
[root@localhost NAS]# ll -d upload/
drwxr-xrwx 2 root root 4096 09-02 19:50 ftpsite/
[root@stu56 ~]# lftp 172.16.46.1 -u test1,123 进入ftpsite目录测试可以上传文件了
磁盘配额
要求 对test1用户限制只能上传100M文件 
分析:
ftp服务器上的用户上传到NAS服务器的文件的UID与ftp服务器上上传用户的UID相同,
可以在NAS端建立与ftp服务器中用户相同的用户且UID相同,便于管理
对test1限制上传100M 也就是对NAS服务器中与ftp服务器test1的UID相同的用户进行限制
对NAS服务器端配置
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# tail -n 1 /etc/fstab
/dev/vg0/nas            /NAS                    ext3    defaults,usrquota  0 0
[root@localhost ~]# mount -o remount /NAS
[root@localhost ~]# mount
/dev/mapper/vg0-nas on /NAS type ext3 (rw,usrquota)
[root@localhost ~]# quotacheck -cmu /NAS
[root@localhost NAS]# ls
aquota.user
[root@localhost NAS]# edquota -u test1 /NAS/
Disk quotas for user test1 (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/vg0-nas               0      10000     100000          0        0      0
~                                                                                                            
                         
[root@localhost NAS]# quotaon -pa
group quota on /NAS (/dev/mapper/vg0-nas) is on
user quota on /NAS (/dev/mapper/vg0-nas) is on
 
[root@localhost ~]# repquota /NAS ******查看quota表
quotaon /NAS/ 开启  quotaoff /NAS 关闭
此时进入ftp服务器测试
 
对于ftp本地用户  ftpusers 只要在ftpusers中的名单不能登录ftp ,其他用户可登录
默认user_list也是黑名单
vsftd.conf 配置 userlist_enable=YES userlist_deny=NO user_list就变为白名单
在user_list中的用户没在ftpusers中的用户可以登录ftp,其他用户不可以登录
ftpusers 比 user_list的优先级高 ,只要在ftpuer中就不能登录,不论在于不再user_list中
 
cifs服务器
[root@localhost NAS]# rpm -qa | grep samba
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
samba-3.0.33-3.7.el5
[root@localhost NAS]#  vim /etc/samba/smb.conf
[nas]
    path = /NAS
    valid users = test1
    writable = yes
[root@localhost NAS]# smbpasswd -a test1 密码设为123
[root@localhost NAS]# service smb restart
[root@localhost NAS]# pdbedit -L
test1:500:
[root@localhost NAS]# cd /NAS/
[root@localhost NAS]# mkdir upload
[root@localhost NAS]# chmod o+w upload/ 赋予upload o用户具有w权限,对于ftp服务器端
的用户就具有了上传传权限的前提条件
ftp服务器端
mount -t cifs //172.16.46.253/nas /nas -o user=test1,pass=123
[root@stu56 ~]# ftp 172.16.46.1 用test1 用户秘密是123登录,进入upload目录测试一下上传功能
如果没有特殊情况,就可以上传文件了
测试一下在功能       会发现是不能下载
下载的只是文件名不能下载内容,这是由于内核一个功能sendfile造成的,他的功能是
当访问smb共享时,只返回文件名,解决方法是关掉此功能(不仅对FTP访问有此限制,对appche服务也有此限制
,进入他们各自的配置文件关掉此功能)
解决:
ftp服务器端 配置文件( /etc/vsftpd/vsftpd.conf )加入 use_sendfile=NO 重启服务即可

 
阅读(3438) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~