|
用户名:BlueSilence 笔名:BlueSilence 地区: 行业:其他 |
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
祝自己生日快乐 ^_^
samba学习笔记
安装samba-3.0.13:
下载:
ftp://ftp.samba.org/pub/samba/samba-3.0.13.tar.gz
解压:
[root@LFS ~]#tar zxvf samba-3.0.13.tar.gz
编译:
[root@LFS ~]#cd samba-3.0.13/source
[root@LFS source]#install -d /var/cache/samba/
[root@LFS source]#./configure --prefix=/usr/local/samba --localstatedir=/var \
--with-piddir=/var/run --with-smbmount && make
samba可以支持许多东东,例如quota,pam,automount. 使用./configure --help查看相关内容
安装:
[root@LFS source]#make install
[root@LFS source]#mv /usr/local/samba/lib/libsmbclient.so /usr/lib
[root@LFS source]#ln -s /usr/lib/libsmbclient.so /usr/local/samba/lib
[root@LFS source]#install -m755 nsswitch/libnss_win{s,bind}.so /lib
[root@LFS source]#ln -sf libnss_winbind.so /lib/libnss_winbind.so.2
[root@LFS source]#ln -sf libnss_wins.so /lib/libnss_wins.so.2
[root@LFS source]#cp ../examples/smb.conf.default /usr/local/samba/lib/smb.conf
配置:
编辑samba配置文件/usr/local/samba/lib/smb.conf:
[global]......[homes]之间为全局设定. [homes]以下的为共享目录设定
全局设定:
[global]
workgroup = WORKGROUP #工作组或NT域名
NetBIOS Name = blue-lfs #本机器的NetBIOS名称
server string = LFS Samba Server #描述服务器信息
unix charset = gb2312 #使中文目录正常显示
dos charset=cp936 #同上,在Linux的X终端中正常显示中文名
security = user #samba验证密码方式,user:需要密码,share:不需要密码
hosts allow = 172.16.245. 127. #允许的主机ip
guest account = nobody #guest帐号,结合以下两项,没有通过密码验证的机器会以nobody
map to guest = Bad User #访问samba服务器中的公开资源。
map to guest = Bad Password
log file = /var/log/samba/log.%m samba日志存放位置, %m表示以连接机器的netBIOS名称记录
max log size = 0 #日志最大长度 (KB) 0表示无限制
;encrypt passwords = yes #是否使用加密密码,user级别使用(samba-3.0.13)不需要设定
smb passwd file = /usr/local/samba/smbpasswd #密码存放文件
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #提高性能
interfaces = 10.70.54.0/24 172.16.245.0/24 172.16.249.0/24
#如果有多个网络接口,必须全部列出来,否则可能会出错
dns proxy = no #不通过dns解析 netBIOS 名称
共享目录设定:
当使用者以不同帐号登陆samba服务器时,homes会变成相应的家目录(samba根据/etc/passwd决定帐号家目录)
[homes]
comment = Home Directories #目录描述信息
browseable = no #防止用户浏览其他用户的家目录
writable = yes #允许写入,同时需要samba服务器该用户有写入权限
;valid user = %S #可以使用该目录的帐号,%S表示任何在smbpasswd中记录的
;create mode = 0644 #创建文件的权限
;directory mode = 755 #创建目录的权限
[software] #使用者看到的共享目录名称
comment = LFS software
path = /software #共享目录的路径
public = no # 非公开的,需要合法帐号登陆
valid user = blue root #允许登陆的帐号
readonly = no # 允许写入
writable = yes #如果这里为no,则不可以写入. 最后出现的设定值有效
[public]
comment = public file
path = /tmp
public = yes
writable = no
guest ok = yes #允许guest帐号访问
建立使用者帐号密码:
samba中的帐号必须真实存在于/etc/passwd中,建立它:
[root@LFS ~]#useradd -c "samba user" -s /bin/false blue
加入到smbpasswd中:
[root@LFS ~]#cd /usr/local/samba
[root@LFS samba]#touch smbpasswd
[root@LFS samba]#chown root:root smbpasswd
[root@LFS samba]#chmod 700 smbpasswd
[root@LFS samba]#smbpasswd -a blue
New SMB password:
Retype new SMB password:
Added user blue.
[root@LFS samba]#cat smbpasswd
blue:501:87F33EC80F6BE805AAD3B435B51404EE:D33DD5DE3AB41AB1E509E8FFBA234FA5:[U ]:LCT-424FAC42:
[root@LFS samba]#
smbpasswd : smbpasswd -[ademx] username
-a 新增一个使用者
-d 禁止一个使用者,会在smbpasswd中多出个"D"
-e 恢复使用者
-m 该username 为机器代码,使用samba做为PDC主机时使用
-x 从smbpasswd中删除使用者
测试:
使用testparm可以测试smb.conf语法是否有错误以及查看设定值:
[root@LFS ~]#testparm
Load smb config files from /usr/local/samba/lib/smb.conf
Processing section "[homes]"
Processing section "[software]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
......略
[root@LFS ~]#
启动samba :
samba需要启动两个daemon:nmbd,smbd :
nmbd :用来管理群组,NetBIOS name 解析
smbd : 用来管理samba主机共享的目录,文件以及打印机
启动它们:(发行版中有自己的samba服务脚本,启动其脚本即可:service smb start)
[root@LFS ~]#/usr/local/samba/sbin/nmbd -D
[root@LFS ~]#/usr/local/samba/sbin/smbd -D
可以看到137-139端口已经处以监听状态:
[root@LFS ~]#netstat -tunl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
udp 0 0 10.70.54.31:137 0.0.0.0:*
udp 0 0 172.16.245.1:137 0.0.0.0:*
udp 0 0 172.16.249.1:137 0.0.0.0:*
udp 0 0 0.0.0.0:137 0.0.0.0:*
udp 0 0 10.70.54.31:138 0.0.0.0:*
udp 0 0 172.16.245.1:138 0.0.0.0:*
udp 0 0 172.16.249.1:138 0.0.0.0:*
udp 0 0 0.0.0.0:138 0.0.0.0:*
[root@LFS ~]#
Client端测试下:
[root@LFS ~]#smbclient -L \\blue-lfs -U blue
Password:
Domain=[BLUE-LFS] OS=[Unix] Server=[Samba 3.0.13]
Sharename Type Comment
--------- ---- ---------
software Disk software
public Disk public file
IPC$ IPC IPC Service (LFS Samba Server)
ADMIN$ IPC IPC Service (LFS Samba Server)
blue Disk Home Directories
Domain=[BLUE-LFS] OS=[Unix] Server=[Samba 3.0.13]
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP-LFS
[root@LFS ~]#
常用变量:
%m :Client的NetBIOS名称 %M : client的HostName %L :samba server的NetBIOS名称
%h :samba server的HostName %H : 使用者的家目录 g :使用者的群组名
%U :使用者名称 %I Client的IP %T 当前时间
Samba做PDC(Primary Domain Controller 主域控制器):
设定smb.conf,将以下几行注释去掉:(其余设定同上)
[global]
local master = yes
os level = 64 #与网域内其他主机相比,这台主机的级别
domain master = yes
preferred master = yes
domain logons = yes
;logon script = %U.bat
#使用者登陆后会执行自己帐号的.bat批处理.该批处理文件存放在[netlogon]
logon script = startup.bat
#我这里设定所有登陆者均使用相同配置,执行startup.bat
logon path = \\%L\Profiles\%U
# 漫游配置文件存放位置,Profiles将被[Profiles]中的路径取代
wins support = yes
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = yes
writable = no
write list =blue root #可以写入的用户,其余用户无法写入
share modes = no
[Profiles]
path = /home/samba/profiles
browseable = no #不可浏览,实际上仍然可以使用该目录,与windows中的c$的"$"作用类似
guest ok = yes
readonly = no #必须设定,否则windows注销时无法将漫游配置文件传回服务器
创建各个目录:
[root@LFS ~]#mkdir -p /home/samba/profiles
[root@LFS ~]#mkdir /home/samba/netlogon
编写startup.bat :
[root@LFS ~]#cd /home/samba/netlogon
[root@LFS ~]#vi startup.bat
net time \\blue-lfs /set /yes #同步client与server时间
net use T: \\blue-lfs\software #software目录映射成T盘
net use X: \\blue-lfs\public #public目录映射成X盘
net是windows中的指令,net use 语法:
net use [device:] [directory]
该批处理文件必须是dos格式才可以,即必须以 ^M$换行
[root@LFS ~]#cat -A /home/samba/netlogon/startup.bat
net time \\blue-lfs /set /yes ^M$
net use T: \\blue-lfs\software ^M$
net use X: \\blue-lfs\public ^M$
[root@LFS ~]#
使用vi可通过 :set textmode 达到要求,或使用tr转换字符:
[root@LFS ~]#cat -A startup.bat |tr '$' '\r' >startup.bat
再将漫游用户的配置文件(C:\Documents and Settings\username)
放到samba server的/home/samba/profile/下
做为PDC内的机器需要提供给PDC其机器代码:
[root@LFS ~]#groupadd machine
[root@LFS ~]#useradd -g machine -s /bin/false -d /dev/null blue2000$
blue2000为我的windows 2000的NetBIOS名称,后加上'$'表示为机器代码
如果useradd不允许添加带有'$'的帐号,则可添加blue2000,再修改/etc/passwd /etc/shadow
[root@LFS ~]#smbpasswd -a -m blue2000$
win2k第一次登陆PDC需要使用root帐号,添加它,不要samba密码与linux主机相同 :)
[root@LFS ~]#smbpasswd -a root
Client端设定 :
首先Client上必须已安装" Microsoft 网络的文件和打印机共享"
win2000: 开始-->控制面板-->网络和拨号连接-->高级-->网络标识-->属性
修改主机名为blue2000及加入工作组WORKGROUP.重启
网络标识--->网络ID 按照提示进行,设置后重启即可选择域登陆
Linux中访问samba服务器共享目录:
使用smbclient :
[root@LFS ~]#smbclient -U blue //blue-lfs/blue
Password:
Domain=[WORKGROUP-LFS] OS=[Unix] Server=[Samba 3.0.13]
smb: \> ls
. D 0 Tue Mar 29 00:31:13 2005
.. D 0 Sat Apr 2 21:13:18 2005
blue.passwd 19 Tue Mar 29 00:30:43 2005
public_html D 0 Tue Mar 29 13:03:07 2005
43987 blocks of size 131072. 14865 blocks available
smb: \> exit
[root@LFS ~]#
?可以查看可用命令,使用它不如smbmount,mount方便
使用smbmount:
[root@LFS ~]#smbmount //blue-lfs/software tmp/ -o username=blue,password=blue
这样就可以象挂载其他分区一样//blue-lfs/software的东东了 :)
使用mount :
[root@LFS ~]#mount -t smbfs -o username=blue,password=blue //blue-lfs/software tmp/
OK,完工 ^_^
- 作者: BlueSilence 2005年04月3日, 星期日 20:04 回复(2) | 引用(1) 加入博采
proc文件系统面面谈
- 作者: BlueSilence 2005年04月1日, 星期五 13:15 回复(1) | 引用(1) 加入博采
apache+mysql+php+phpmyadmin学习笔记
- 作者: BlueSilence 2005年03月31日, 星期四 02:32 回复(0) | 引用(1) 加入博采
vsftpd学习笔记
- 作者: BlueSilence 2005年03月27日, 星期日 00:35 回复(5) | 引用(2) 加入博采
vmware,qemu各种方式上网设置
- 作者: BlueSilence 2005年03月25日, 星期五 16:45 回复(0) | 引用(1) 加入博采
在chroot环境中运行GUI程序
- 作者: BlueSilence 2005年03月23日, 星期三 13:03 回复(0) | 引用(2) 加入博采
X-window简略笔记
Q:为什么我的鼠标无法使用滚轮?
A:修改X配置文件,找到下面这一段,增加红色部分:
/etc/X11/xorg.conf或/etc/X11/XF86ConfigSection "Input Device"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/psaux"
Option "ZAxisMapping" "4 5"
EndSection
"4 5 " 表示鼠标中键模拟"上下"键。
Protocol要用IMPS/2而不是PS/2
X的一些安全设置: (注:在xorg 6.8.1环境下)
/etc/X11/xorg.conf中添加:
Section "ServerFlags"
#Disable switching from the GUI to other virtual terminals
#Option "DontVTSwitch" "on"
#DontZap # disable (server abort)
#DontZoom # disable / (resolution switching)
AllowMouseOpenFail # allows the server to start up even ifthe mouse doesn't work
EndSection
Option "DontVTSwitch" "on" 禁止在GUI下ctrl-alt-Fn切换到终端
DontZap 禁止使用ctrl-alt-backspace退出X
DontZoom 禁止使用ctrl-alt-[+,-]调整分辨率
AllowMouseOpenFail 允许启动X即使鼠标不工作
否则当鼠标无法使用时,无法启动X,并且按键也无响应,呈死机状,实际linux仍然在运行
只能按reset按钮,有可能造成系统损坏。 :(
设定konsole启动的位置:
KDE这个konsole每次启动时都在左上角,每次都要手动移动到中间
很烦人,于是写个小脚本包装下,添加到任务栏中,这样它就出现在我想的地方了 :)
konsole.sh :
#!/bin/bash
konsole -geometry 733x565+250+300
-geometry XSIZExYSIZE+XOFF+YOFF
XSIZExYSIZE是窗口的大小,XOFF+YOFF是窗口的位置,以左上角偏移。
在本机上显示远程主机程序:
remote host ip : 10.70.54.5
local host ip : 10.70.54.31
1. 进入X-window,打开终端,设定允许远程主机的程序(X-cilent)在本机(X-server)显示:
xhost + 10.70.54.5
2. 登陆到远程主机,设定DISPLAY变量将程序显示到本机上:
export DISPLAY=10.70.54.31:0.0
3.运行程序 :)
在本机上也可以设定DISPLAY变量将程序显示到不同的X中:
启动X,终端输入echo $DISPLAY:
[root@LFS ~]#echo $DISPLAY
:0.0
[root@LFS ~]#
ctrl-alt-F2切换到文本终端下输入:
[root@LFS ~]#startx -- : 1
这样就又启动个X,ctrl-alt-F8切换进去,在终端输入:
[root@LFS ~]#echo $DISPLAY
:1.0
[root@LFS ~]#
ctrl-alt-F7回到第一个X,修改DISPLAY:
[root@LFS ~]#export DISPLAY=:1.0
[root@LFS ~]#xmms
xmms就会出现在第二个X里^_^
在文本终端设定对应的DISPLAY变量,就可以将程序显示到相应的X中。
X启动时读取的配置文件:~/.xinitrc :startx时读取,X启动时需要背景运行的程序及window manager
如果不存在则读取/etc/X11/xinit/xinitrc
例:startx启动X时自动运行fcitx及启动KDE环境。
/usr/local/bin/fcitx &
exec startkde
以下两个文件由switchdesk创建:
~/.Xclients : 执行.Xclients-default
exec .Xclients-default
~/.Xclients-default : 启动桌面环境,如kde,fvwm,这里会覆盖掉/etc/sysconfig/desktop的设定
exec startkde
~/.xsession : 由Display Manager(kdm,xdm,gdm)读取.如果不存在则取~/.Xclients
- 作者: BlueSilence 2005年03月21日, 星期一 20:15 回复(0) | 引用(2) 加入博采
剖析Linux系统启动过程
- 作者: BlueSilence 2005年03月19日, 星期六 23:54 回复(1) | 引用(2) 加入博
磁盘配额(quota)学习笔记
什么是 Quota?建立quota:
Quota 让你可以从两方面指定磁盘的储存限制: 使用者所能够支配的索引
节点(inodes)数量;以及使用者可以取用的磁盘区块数量。
Quota 背後的含意是强制使用者在大部分的时间中保持在他们的磁盘使用
限制之下,取消他们在系统上无限制地使用磁盘空间的能力。
Quota 是以每一使用者,每一文件系统为基础的.如果使用者可能在超过
一个以上的文件系统上建立文件,那么必须在每一文件系统上分别设定
quota.
一:内核中支持QUOTA:
检查当前内核是否支持quota,当前内核配置文件在/boot下
[root@LFS ~]#grep CONFIG_QUOTA /boot/config-[version]
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y
[root@LFS ~]#
如果有上列输出,则表示当前内核已经支持quota。
如果当前内核不支持quota,需要重新编译内核将quota support编译进核心:
File systems --->
[*] Quota support
二:安装QUOTA工具:
http://distro.ibiblio.org/pub/linux/distributions/sorcerer/sources/quota/3.12/
下载quota-3.12.tar.bz2 解压后使用如下命令编译安装:
[root@LFS quota-tools]#./configure --prefix=/usr
[root@LFS quota-tools]#make
[root@LFS quota-tools]#make install
三:修改/etc/fstab加入QUOTA支持:
/dev/hda7 /mnt/lfs ext3 defaults,usrquota,grpquota 1 2
四:使用quotacheck初始化QUOTA数据库:
因为quotacheck依据/etc/mtab搜索文件系统,所以要将刚刚修改的hda7重新挂载
[root@LFS quota-tools]#mount /mnt/lfs/ -o remount
[root@LFS quota-tools]#mount
......略
/dev/hda7 on /mnt/lfs type ext3 (rw,usrquota,grpquota)
[root@LFS quota-tools]#quotacheck -avug
quotacheck: Scanning /dev/hda7 [/mnt/lfs] quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
done
quotacheck: Checked 6316 directories and 85861 files
quotacheck: Old file not found.
quotacheck: Old file not found.
[root@LFS quota-tools]#
这里因为搜索不到旧版本的quota文件,所以有错误信息,但不影响。
-a : 扫描所有在/etc/mtab中开启quota的文件系统
-v : 显示扫描过程
-u : 扫描所有user quotas (usrquota)
-g : 扫描所有group quotas (grpquota)
检查完毕后生成quota的信息文件:
[root@LFS lfs]#ls -l /mnt/lfs/aquota.*
-rw------- 1 root root 11264 Mar 18 20:56 aquota.group
-rw------- 1 root root 12288 Mar 18 20:56 aquota.user
[root@LFS lfs]#
五:启动QUOTA:
[root@LFS lfs]#quotaon -av
/dev/hda7 [/mnt/lfs]: group quotas turned on
/dev/hda7 [/mnt/lfs]: user quotas turned on
[root@LFS lfs]#
-a : 开启所有quota设定,根据/etc/mtab设定
-v : 当开启quota时显示信息
六:编辑用户磁盘限额:
这里设定用户quota最大使用容量为20M,当使用到10M时会得到警告要求降低到10M
最多可以创建10个文件,当创建5个文件时会得到警告要求降低到5个文件 :-)
[root@LFS lfs]#edquota -u quota
Disk quotas for user quota (uid 5011):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 0 10240 20480 0 5 10
-u : 编辑user的quota
-g : 编辑group的quota
-t : 编辑宽限时间
-p : 复制quota资料到另一用户上
blocks :目前使用者(quota:uid=5011)在/dev/hda7所使用的空间,单位:KB (不要修改)
soft :soft limit 磁盘空间限定值 单位:KB (需要设定)
hard :hard limit 磁盘空间限定值 单位: KB (需要设定)
inodes :目前使用者使用掉的inodes,由于不容易使用inode控制,所以不要修改它。
soft :soft limit 文件限制数量 (根据需要修改)
hard :hard limit 文件限制数量 (根据需要修改)
soft limit :最低限制容量,在宽限期(grace period)之内,使用容量可以超过soft limit,但必须在宽限期之内将使用容量降低到soft limit以下。
hard limit :最终限制容量,如果使用者在宽限期内继续写入数据,到达hard limit将无法再写入。
宽限时间:使用容量超过soft limit,宽限时间自动启动,使用者将容量降低到soft limit以下,宽限时间自动关闭,如果使用者没有在宽限时间内将容量降低到soft limit,那么他将无法再写入数据,即使使用容量没有到达hard limit
设定宽限时间:
[root@LFS lfs]#edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda7 1days 7days
OK,完成啦,检查一下吧:
[root@LFS lfs]#quota -uv quota
Disk quotas for user quota (uid 5011):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 0 1024 2048 0 5 10
[root@LFS lfs]#
-u : 显示user
-v : 显示quota值
使用-p参数复制quota资料到另一个用户:
[root@LFS lfs]#edquota -p quota test
[root@LFS lfs]#quota -uv test
Disk quotas for user test (uid 5012):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 0 1024 2048 0 5 10
[root@LFS lfs]#
同时复制给多个用户:
[root@LFS lfs]#edquota -p quota `awk -F: '$3 >499 {print $1}' /etc/passwd`
这样就将quota的磁盘配额资料复制给所有uid >499的用户(uid为500以上的用户通常为真实用户)
OK,最后加在启动脚本里,系统启动时自动激活quota吧!
可以加入到/etc/rc.d/rc.sysinit或/etc/rc.d/rc.local中,在结尾加上一行:
/usr/sbin/quotaon -aug
还要记得在系统关机/重启脚本(/etc/rc.d/rc[0,6]/)中加入关闭quota的语句:
/usr/sbin/quotaoff -aug
通常发行版在系统启动/关闭时都会处理quota,在系统启动信息看到相关信息。
例如RedHat RHEL4,Mandrake 10.1系统启动/关闭时有这样两行:
Turning on user and group quotas for local filesystems: (/etc/rc.d/rc.sysinit)
Turning off quotas: (/etc/rc.d/rc0.d/S01halt /etc/rc.d/rc6.d/S01reboot)
查询磁盘配额:
root查询所有用户使用情况:
[root@LFS ~]#repquota -a
*** Report for user quotas on device /dev/hda7
Block grace time: 24:00; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
......略
quota +- 1032 1024 2048 23:59 2 5 10
[root@LFS ~]#
如果有多个分区为quota,可用repquota -u 挂载点 查询单个分区的使用情况
普通用户查询自己使用情况:
[quota@MyLFS ~]$quota
Disk quotas for user quota (uid 5011):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 1032* 1024 2048 23:58 2 5 10
[quota@MyLFS ~]$
quotcheck :
quotcheck用来扫描文件系统的磁盘用量,更新aquota.user,aquota.group
保持quota记录档到最新的状态。
因此最好在系统启动时执行或通过cron定期执行:
每周六早七点执行一次:
0 7 * * 6 /sbin/quotacheck -avug
- 作者: BlueSilence 2005年03月19日, 星期六 00:23 回复(0) | 引用(1) 加入博采
Software Raid-[0,1,5]学习笔记
RAID 0
This level of RAID makes it faster to read and write to the hard drives. However, RAID 0 provides no data redundancy. It requires at least two hard disks.
Reads and writes to the hard disks are done in parallel, in other words, to two or more hard disks simultaneously. All hard drives in a RAID 0 array are filled equally. But since RAID 0 does not provide data redundancy, a failure of any one of the drives will result in total data loss. RAID 0 is also known as 'striping without parity.'
特征:并行读写数据,性能高,但没有数据冗余,阵列中任何一个硬盘坏掉,意味着所有数据丢失
容量:所有硬盘容量之和
条件:至少两块硬盘,做为RAID的分区大小必须是几乎相同的.
首先将各个分区的分区类型标识为FD:
[root@LFS ~]#fdisk /dev/hda
Command (m for help):t
Partition number (1-4):1
Hex code (type L to list codes):fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help):p
/dev/hda1 1 646 325552+ fd Linux raid autodetect
使用raidtools-1.00.3创建raid-0:
编写raid的配置文件/etc/raidtab:
在/usr/share/doc/raidtools-1.00.3下有样例文件
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
nr-spare-disks 0
persistent-superblock 1
chunk-size 4
device /dev/hda1
raid-disk 0
device /dev/hdb1
raid-disk 1
mkraid依据raidtab创建raid:
[root@LFS ~]#mkraid /dev/md0
......
raid0: done.
raid0 : md_size is 650880 blocks
raid0 : conf ->hash_spacing is 650880 blocks
raid0 : nb_zone is 1.
raid0 : Allocating 4 byte for hash
使用mdadm创建raid-0:
[root@LFS ~]#mdadm --create --verbose /dev/md0 --level=raid0 \
--raid-devices=2 --chunk=4 /dev/hda1 /dev/hdb1
......
raid0: done.
raid0 : md_size is 650880 blocks
raid0 : conf ->hash_spacing is 650880 blocks
raid0 : nb_zone is 1.
raid0 : Allocating 4 byte for hash
mdadm: array /dev/md0 started .
[root@LFS ~]#
查看状态:
[root@LFS ~]#cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 hdb1[1] hda1[0]
650880 blocks 4k rounding
unused devices:
[root@LFS ~]#
创建文件系统,挂载:
[root@LFS ~]#mkreiserfs /dev/md0
[root@LFS ~]#mount -t reiserfs /dev/md0 /mnt/raid0
加入到/etc/fstab,系统启动自动挂载:
/dev/md0 /mnt/raid0 reiserfs defaults 1 2
Commands in raidtab
Command
Description
nr-raid-disks
Number of RAID disks to use
nr-spare-disks
Number of spare disks to use
persistent-superblock
Required for autodetection
chunk-size
Amount of data to read/write
parity-algorithm
How RAID 5 should use parity
RAID 1
This level of RAID mirrors information to two or more other disks. In other words, the same set of information is written to two different hard disks. If one disk is damaged or removed, you still have all of the data on the other hard disk. The disadvantage of RAID 1 is that data has to be written twice, which can reduce performance. You can come close to maintaining the same level of performance if you also use separate hard disk controllers. That prevents the hard disk controller from becoming a bottleneck.
<>And it is expensive. To support RAID 1, you need an additional hard disk for every hard disk worth of data. RAID 1 is also known as disk mirroring.
特征:数据冗余,可靠性强。任何一块硬盘坏掉,不会丢失数据。写入慢,读取快。
容量:所有硬盘容量/2
条件:至少两块硬盘,做为RAID的分区大小必须是几乎相同的.
raidtools-1.00.3:
编写/etc/raidtab :
raiddev /dev/md1
raid-level 1
nr-raid-disks 2
nr-spare-disks 1
persistent-superblock 1
chunk-size 4
device /dev/hda2
raid-disk 0
device /dev/hdb2
raid-disk 1
device /dev/hdc2
spare-disk 0
[root@LFS ~]#mkraid /dev/md1
使用mdadm创建raid-1:
[root@LFS ~]#mdadm --create --verbose /dev/md1 --level=raid1 \
--raid-devices=2 --spare-devices=1 --chunk=4 /dev/hda2 /dev/hdb2 /dev/hdc2
[root@LFS ~]#cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hdc2[2] hdb2[1] hda2[0]
325440 blocks [2/2] [UU]
unused devices:
[root@LFS ~]#mkreiserfs /dev/md1
[root@LFS ~]#mount -t reiserfs /dev/md1 /mnt/raid1
device /dev/hdc2
spare-disk 0
表示用/dev/hdc2做为spare disk,当hda2或hdb2坏掉时,raid会自动启用/dev/hdc2做为镜像.
RAID 5
特征:采用奇偶效验,可靠性强。只有当两块硬盘坏掉时才会丢失数据。并行读写数据,性能也很高。
容量:所有硬盘容量-1
条件:至少三块硬盘,做为RAID的分区大小必须是几乎相同的。
使用raidtools-1.00.3创建raid-5:
编写/etc/raidtab:
raiddev /dev/md5
raid-level 5
nr-raid-disks 3
nr-spare-disks 0
persistent-superblock 1
chunksize 32
parity-algorithm left-symmetric
device /dev/hda3
raid-disk 0
device /dev/hdb3
raid-disk 1
device /dev/hdc3
raid-disk 2
[root@LFS ~]#mkraid /dev/md5
使用mdadm创建raid-5:
[root@LFS ~]#mdadm --create --verbose /dev/md5 --level=raid5 \
--raid-devices=3 --chunk=32 /dev/hda3 /dev/hdb3 /dev/hdc3
[root@LFS ~]#mkreiserfs /dev/md5
[root@LFS ~]#mount -t reiserfs /dev/md5 /mnt/raid5
parity-algorithm left-symmetric
parity-algorithm表示raid5的奇偶效验的运算法则,可用选择有:
left-symmetric left-asymmetric
right-symmetric right-asymmetric
最佳性能的是:left-symmetric
LVM+RAID :
LVM的物理卷(PV)可以是标准硬盘分区也可以是RAID设备,因此可以在RAID上使用LVM管理分区。
创建PV:
[root@LFS ~]#pvcreate /dev/md5
Physical volume "/dev/md5" successfully created
创建VG:
[root@LFS ~]#vgcreate raid_lvm /dev/md5
Volume group "raid_lvm" successfully created
创建LV:
[root@LFS ~]#lvcreate -L 300M -n "lv_data" raid_lvm
Logical volume "lv_data" created
创建reiserfs:
[root@LFS ~]#mkreiserfs /dev/raid_lvm/lv_data
[root@LFS ~]#mkdir /mnt/data
[root@LFS ~]#mount -t reiserfs /dev/raid_lvm/lv_data /mnt/data
About chunk-size :
The argument to the chunk-size option in /etc/raidtab specifies the chunk-size in kilobytes. So "4" means "4 kB".
补充几个问题:
Q:如何得知当前内核是否支持RAID?
A:cat /proc/mdstat 有输出信息则表示内核已经支持
或者dmesg |grep -i raid dmesg |grep -i md 都可以看到。
Q:如何得知当前内核支持哪几种RAID?
A:安装当前内核源码包,将当前内核配置文件cp到内核源码目录下
cp /boot/config-xxx /usr/src/linux && make menuconfig
看看Device Drivers --->Multi-device support (RAID and LVM)这里的选项就知道了。
或者cat /lib/modules/`uname -r`/modules.alias |grep raid0
raid0为查看的级别:raid1,raid5...
如果有输出则表示内核已经支持,并且/必须是做为模块加载的。
Q:raidtool和mdadm应该使用哪个?哪里有下载?
A:mdadm可能更方便一些。mdadm与raidtool的区别:
The key differences between mdadm and raidtools are:
mdadm is a single program and not a collection of programs.
mdadm can perform (almost) all of its functions without having
a configuration file and does not use one by default. Also
mdadm helps with management of the configuration file.
mdadm can provide information about your arrays (through
Query, Detail, and Examine) that raidtools cannot.
mdadm does not use /etc/raidtab, the raidtools configuration file,
at all. It has a different configuration file with a different
format and an different purpose.
另外我看的这本书里,讲解的是raidtool,这是在RHEL3中所使用的,但是我在RHEL4中做这个lab
发现四张盘里没有raidtool,只有mdadm,看来RH也是偏向于使用mdadm的 :)
下载地址:
mdadm:
http://www.cse.unsw.edu.au/~neilb/source/mdadm/RPM/
http://www.cse.unsw.edu.au/~neilb/source/mdadm/
raidtool:
ftp://194.199.20.114/linux/fedora/core/2/i386/os/Fedora/RPMS/raidtools-1.00.3-8.i386.rpm
OK,这个lab完成啦。
有机会一定要在真实硬盘上试试raid-0+lvm+reiserfs,看看是什么感觉 ^_^
- 作者: BlueSilence 2005年03月14日, 星期一 01:24 回复(8) | 引用(1) 加入博采