Storage Administration Guide 阅读总结(Redhat官方文档)

/proc/devices:显示当前配置好了的字符设备与块设备;
/proc/filesystems:列出当前所有支持的文件系统;

/proc/mdstat:系统中MD或RAID的配置信息;

/proc/mounts:列出当前挂载了的文件系统;

/proc/partitions:块设备的分区信息;

忽略未使用的块:discard unused blocks
fstrim 命令;
文件系统底层是否支持:
/sys/block/device/queue/discard_max_bytes不为0

1.BTRFS特性:
BTRFS文件系统内部包含了一些工具:
Built-in System Rollback:内建系统回滚,使用快照,可以从错误状态回滚到先前已知的良好状态。
Built-in Compression:内建压缩,或节省空间
Checksum Functionality:改善错误检测。
Specific features include integrated LVM operations, such as:
动态,在线添加或删除新的存储设备
跨组件设备内部的RAID支持
使用不同的RAID级别的元数据或用户数据的能力
全校验功能,所有的元数据和用户数据。


2.EXT3:
ext2-->升级到ext3: tune2fs -j blockdevice;
还原到ext2: tune2fs -O ^has_journal blockdevice
e2fsck -y blockdevice

3.EXT4特性:
1.使用extents,提高性能。(而不是像EXT2/3那样基于块映射)
2.永久预分配:Persistent pre-allocation。
廷迟分配:Delayed allocation。
多块分配:Multi-block allocation。
条带感知分配:Stripe-aware allocation。
3.扩展属性:Extended attributes(xattr).
4.日志配额:Quota journaling。
5.秒级时间戳:subsecond timestamps.
默认情况下,ext3几乎立刻把脏数据写到磁盘,即使不调fsync()。
这种行为的错误藏在不使用的fsync()的程序,以确保写入数据是在磁盘上。 
ext4文件系统中,往往会等待几秒钟的时间写到磁盘,允许多个写结合起来,并重新排序写入,以获得更好的磁盘性能。

mkfs.ext4 -E stride=16,stripe-width=16 /dev/device
stride:chunk大小,条块大小。
stripe-width:条带的大小。块以block 为单位。
(在lv或raid设备上创建文件系统时,可以自动感知。
如果在单设备上指定可以解决想格式化大块但不能用的问题)

ext4文件系统增大与缩小:
增大:resize2fs /mount/device node

缩小:resize2fs /dev/device  size(s=512 byte sectors,K=kilobytes,M=megabytes,G=gigabytes)

工具:
e2fsck:ext4文件系统修复工具。
e2label:更改标签。
quota:控制或报告磁盘使用空间。
debugfs:
e2image:保存元数据到文件。


4.xfs特性:
1.支持元数据日志,更快的恢复时间。
2.基于区块的分配:Extent-based allocation
条带感知分配:Stripe-aware allocation policies
廷迟分配:Delayed allocation(调用fsync()前,不确定数据是否写入磁盘)
空间预分配:Space pre-allocation
3.扩展属性:Extended attributes(xattr).
4.日志配额:Quota journaling。
5.工程目录配额:Project/directory quotas.
6.秒级时间戳:subsecond timestamps.

mkfs.xfs -d su=64k,sw=1 /dev/device
su=sunit:条块大小
sw=swidth:条带大小

工具:
配额管理:xfs_quota
增大工具:xfs_growfs:/mount/device -D size
修复工具:xfs_repair:/dev/device  
暂停(suspending)XFS(freeze):
挂起: xfs_freeze -f /mount/point
恢复:   unfreeze: xfs_freeze -u /mount/point
备份/还原:xfsdump/xfsrestore
xfsdump -l (为了支持增量备份的备份级别0-9) -f /dev/device /path/filesystem
xfs_fsr:碎片整理
xfs_bmap:打印文件系统块位图
xfs_info:打印文件系统信息
xfs_admin:更改文件系统参数
xfs_copy:并行的拷贝文件系统
xfs_metadump:拷贝文件系统元数据到文件
xfs_mdrestore:恢复元数据镜像
xfs_db:debug文件系统

5.GFS:gfs.ko 
实现集群文件系统,采用分布式元数据和多种日志。

6.NFS:
NFSv2:(UDP)最老,广泛支持。
NFSv3:(UDP)支持安全的异步写,错误处理更强状比NFSv2.支持64位的大小与偏移
NFSv4:(TCP:2049)通过防火墙,不再需要 rpcbind服务.支持pNFS(NFSv4.1)
服务:
nfs:service nfs start 开启NFS服务;
nfslock:service nfslock start 激活强制服务,启动相应的RPC进程,允许NFS客户端锁定服务器上的文件;
rpcbind: 接受本地RPC服务端口注册,并响应客户请求。
配置:/etc/exportfs
exportpath host1(options1) host2(options2)

帮助进程:
rpc.mountd:些进程帮助NFS服务器处理来自NFSv2和NFSv3的客户端安装请求。它检查所请求的NFS共享与NFS服务器导出的共离,如果装入请求被允许,就回复一个Success状态,并提供这个共享的NFS文件句柄给NFS客户端。

rpc.nfsd:nfs服务进程

lockd:是一个运行在客户端和服务器内核线程。它实现了网络锁定管理(NLM )协议,它允许NFSv2和NFSv3的客户锁定服务器上的文件。NFS服务运行时会自动启动。

rpc.statd:它实现了网络状态监视( NSM ) RPC协议,当一个NFS服务器重新启动时
通知NFS客户端。rpc.statd是由nfslock服务自动启动,不需要用户的配置。NFSv4中不在使用。

rpc.rquotad:提供用户配额信息给远程用户,由NFS服务自动启动,不需要用户的配置。

rpm.idmapd:NFSv4客户端与服务端的用户名在线映射,user@domain-->UIDS,GIDS,
通过/etc/idmapd.conf配置。

pNFS:pNFS的架构提高了NFS的可扩展性与性能。也就是说,当一台服务器实现了pNFS 一个客户端可以通过多台服务器同时访问数据。
它支持三种存储协议或布局:文件,对象和块。

使用这个功能:mount -o minorversion=1 或 -o v4.1
当pNFS开启后,第一次 mount时,nfs_layout_nfsv41_files模块会自动加载。
lsmod | grep nfs_layout_nfsv41_files

NFS客户端:
mount -t nfs -o options host:/remote/export /local/directory
NFS over RDMA: yum install rdma
mount -t nfs -o rdma ...

使用fstab挂载:
server:/usr/local/pub    /pub   nfs    defaults 0 0

当使用fstab资源太多时可使用autofs; yum install autofs;
基于内核的automount工具:一个内核模块和一个用户空间守护进程。支持NFS,afs,smbfs,cifs,本地文件系统.
配置文件:/etc/auto.master
格式:mount-point map-name options

FS-CACHE:把网络文件系统从网络上接收到的数据缓存在本地磁盘。
守护进程:cachefilesd
配置文件:/etc/cachefilesd.conf

swap 分区:
关闭swap分区:swapoff -v /dev/vg1/lv1
增大LV:lvresize /dev/vg1/lg1 -L +2G ;lvreduce /dev/vg1/lv1 -L -512M
创建SWAP分区:mkswap /dev/vg1/lv1
开启SWAP分区:swapon -v /dev/vg1/lv1
swap file:
dd if=/dev/zero of=/swapfile bs=1024 count=1024
mkswap /swapfile
swapon /swapfile
/swapfile swap swap defaults 0 0

磁盘配额quotas:
1.使能quotas在/etc/fstab中
/dev/vg0/lv1 /homeext3defaults,usrquota,grpquota12
2.重新挂载
mount -a ;mount -o remount /home
3.创建quota数据库文件和产生磁盘使用表
quotacheck -cug /home;//产生aquota.user ,aquota.group
quotacheck -avug ;产生使用情况表
4.指定quota策略
#edquota username 或edquota -g groupname
Disk quotas for user username (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb4                         8          0          0          1        0        0
blocks:当前已使用的块数。
soft/hard:用来设置在文件系统中用户的软/硬块限制。
inodes:当前已使用的inodes节点数。
soft/hard:用来设置文件系统中用户的软/硬inodes节点限制。

确认设置:#quota username或quota -g groupname

#edquota -t 设置软限制的宽限期

quota管理:
#quotaoff -vaug 关闭
#quotaon -vaug 打开
#repquota /demo或-a 报告磁盘配额情况

RAID:
linux软RAID子系统:mdraid,dmraid
raid类型: Fireware RAID(ATARAID),固件配置菜单,如加入bios。
Hardware RAID,独立于主机的RAID子系统。
Software RAID,内核块设备层实现不同的RAID级别。MD驱动。
软RAID特性:
》多线程设计
》没有重构前的LINUX机器可移植性
》系统空闭时后台重建
》热插拨支持
》自动探测CPU可用的优化特征,如SIMD
》阵列中坏块的自动校正
》定期的一致性数据校验,确保阵列正常
》主动监测,并发送指定的邮件
》write-intent位图确保内核对磁盘部分同步,而不是同步整个阵列
》重新同步检查点,接着上次的同步点同步,而不是重头开发
》支持阵列安装后的参数更改

RAID级别:0(条带raid),1(镜像raid),4(单个磁盘保存奇偶校验),5(平均分布保存奇偶校验),
6(复杂的校验算法确保两个磁盘损坏是的数据恢复),10,linear(线性raid)

ACL:
两种类型:access ACLs(对指定的目录与文件),default ACLs(只能与目录相关联)。
设置ACL:
# setfacl -m rules files
-m:添加或修改文件与目录的访问控制列表
-x:删除
rules:规则
u:uid:perms -->针对用户(perms是r,w,x的组合)
g:gid:perms -->针对用户组
o:perms -->针对其它用户
m:perms -->设置权限掩码
d: (规则前加d:是对默认的ACL设置,只能是目录)
例:
# setfacl -m u:andrius:rw /project/somefile
# setfacl -x u:500 /project/somefile

查看ACL:
getfacl files/dirc
(要注意文件dump备份时,cp拷贝时,tar打包时的ACL,权限位与SElinux context的保存)。

SSD:可以空出一部分空间来保证损耗均衡.(如果厂商支持,可以发送TRIM的ATA命令,UNMAP的SCSI命令来保留一部分块空间).是否支持discard,查看/sys/block/sda/queue/discard_granularity.
For more information about TRIM, refer to its Data Set Management T13 Specifications from the following link:
http://t13.org/Documents/UploadedDocuments/docs2008/e07154r6-Data_Set_Management_Proposal_for_ATA-ACS2.doc
For more information about UNMAP, refer to section 4.7.3.4 of the SCSI Block Commands 3 T10 Specification from the following link:
http://www.t10.org/cgi-bin/ac.pl?t=f&f=sbc3r26.pdf

IO调度:起动参数:全局设置‘elevator=deadline’
查看当前IO调度:cat /sys/block/DEV/queue/scheduler
设置IO调度:echo SCHEDNAME > /sys/block/DEV/queue/scheduler

重新扫瞄添加设备
echo "- - -" > /sys/class/scsi_host/hostn/scan
停止设备:
echo offline > /sys/block/sdb/device/state
启动设备: 
echo running > /sys/block/sdb/device/state 
修改SCSI命令超时时间:
echo 30 > /sys/block/device-name/device/timeout

你可能感兴趣的:(Storage Administration Guide 阅读总结(Redhat官方文档))