centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

2019年11月30日 阅读数:374
这篇文章主要向大家介绍centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

centos Linux下磁盘管理   parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,nr_inodes, LVM,传统方式扩容文件系统   第七节课php

 

 

fdisk  设备名 ‘p’, ‘n’, ‘d’, ‘w’, ‘q’,‘l’.
partprobe

mount  //查看当前挂载状况
mount -a  //挂载/etc/fstab




mkfs.ext4  /dev/sdb1
mkfs -t ext4 /dev/sdb3

echo "/dev/sdb1  /data  ext4  defaults,noatime,nodiratime   0 0" >>/etc/fstab
mount -a

mount   -o  noatime,nodiratime  /dev/vdb1  /data
mount   -o remount,noatime,nodiratime   /dev/vdb1  /data


umount  /dev/sda5 或者 umount /mnt
umount -lf  //强制卸载  umount -lf /mnt


---------------------------------------------------------------

腾讯云机器初始化分区

echo -e "n\np\n1\n\n\nwq\n" |fdisk /dev/vdb
mkdir -p /data/
mkfs -t ext4 /dev/vdb1
echo "/dev/vdb1  /data  ext4  defaults,noatime,nodiratime   0 0" >>/etc/fstab
mount -a
mkdir -p /data/{download,backup,script,kvmimg}
----------------------------------------------------------------------

 

 

 

 

parted 分区工具html

http://www.apelearn.com/bbs/thread-7243-1-3.htmlnode

 

上半节课linux

df -iTh
du -sh
ls -lhd /tmp/
fdisk
partprobeweb

partx 算法

 

下半节课
# cat /etc/filesystems
mkfs.ext4
mount
tmpfs
nr_inodes
/etc/fstab
fscksql

 

 

 

df命令
df -h :可读形式
df -TH --total :显示全部分区加起来的空间
df -TH:文件系统类型
df -i:inode的数量
df -iTh
注意inode的使用shell

df -TH --total
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  501M  4.1k  501M   1% /dev
tmpfs          tmpfs     103M  1.1M  102M   1% /run
/dev/sda1      ext4       30G  1.3G   27G   5% /
none           tmpfs     4.1k     0  4.1k   0% /sys/fs/cgroup
none           tmpfs     5.3M     0  5.3M   0% /run/lock
none           tmpfs     512M     0  512M   0% /run/shm
none           tmpfs     105M     0  105M   0% /run/user
/dev/sda3      ext4       45G   51M   42G   1% /data
/dev/sda2      ext4      283M   40M  224M  15% /boot
total          -          75G  1.4G   70G   2% -

 

 

 


du命令
du -sh /tmp/ 全部文件加起来大小
du -sm /tmp/ MB
du -sk /tmp/ KB 默认
du -sb /tmp/ 字节
du --max-depth=1 一级目录
ls -lhd 若是是目录的话 指目录自己 通常一个目录只占用一个块的大小
ls -lhd /tmp/ 4.0K数据库


echo "22" >1.txt :Linux磁盘管理第一节课,铭哥说1.txt占2个字节 由于有两个字符apache

# du -h --max-depth=1 /
0 /misc
244K /dev
4.0K /media
48M /boot
225M /var
2.2G /usr
4.0K /aming
4.0K /srv
4.3G /root
4.0K /selinux
28M /lib64
4.0K /testsdb1
7.8M /bin
4.0K /mnt
4.0K /cgroup
37M /etc
255M /lib
52K /tmp
4.0K /.ssh
4.0K /testsdb3
16K /lost+found
73M /data
0 /net
du: 没法访问"/proc/2818/task/2818/fd/4": 没有那个文件或目录
du: 没法访问"/proc/2818/task/2818/fdinfo/4": 没有那个文件或目录
du: 没法访问"/proc/2818/fd/4": 没有那个文件或目录
du: 没法访问"/proc/2818/fdinfo/4": 没有那个文件或目录
0 /proc
4.0K /download1
8.0K /123
0 /sys
787M /download
8.0K /opt
284K /home
15M /sbin
7.9G /

 

 

 

磁盘的分区和格式化

fdisk -l  查看磁盘和分区,大于2T用GPT

fdisk  设备名 m 列出经常使用命令,经常使用的有‘p’, ‘n’, ‘d’, ‘w’, ‘q’,‘l’.

 

MBR:P+E=<4

GPT:128

直接写分区大小

 

先建扩展分区,再建逻辑分区

 

逻辑分区必定从5开始,当前是二个主分区,一个扩展分区

 

w :保存分区表


partprobe :有时候w保存分区表以后,系统没有那么快识别出来,须要partprobe 从新读取/刷新分区,或者重启服务器

partx -a:RHEL 6.0下partprobe 不能用,只能用partx -a

partx
-a 登记某块盘上的全部分区信息,若是某个分区信息已有记录,就会报错:
BLKPG: Device or resource busy
error adding partition 4
-d 删除内核中关于某磁盘上的全部分区的记录(不是卸载)
-d --nr m-n 删除从第m--n分区的记录
若是已经挂载,则没法删除,并报错:
error deleting partition 5: BLKPG: Device or resource busy
-l 列出某磁盘上的分区状况。数据从磁盘上获取,并非来源于/proc/partitions
partx -l /dev/sda
# 1: 2048- 1026047 ( 1024000 sectors, 524 MB) /boot
# 2: 1026048- 62466047 ( 61440000 sectors, 31457 MB) /
# 3: 62466048- 78850047 ( 16384000 sectors, 8388 MB) /swap
# 4: 78850048-1953525167 (1874675120 sectors, 959833 MB) /data
# 5: 78852096-1953523711 (1874671616 sectors, 959831 MB)

 

 

sda、sdb:sata/scsi disk A   disk B

sda一、sda二、sda3 分区

 

挂载磁盘
fdisk  /dev/vdb
n   new
p   primary /extent
1    扇区从1开始
+9G   9个G
mkdir /mydata
mke2fs  -t  ext4  /dev/vdb1
echo '/dev/vdb1  /mydata  ext4  defaults,noatime,nodiratime   0 0' >>/etc/fstab
mount -a

 


下半节课

 

查看系统当前支持的文件系统

# cat /etc/filesystems
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660  光驱
vfat
hfs
hfsplus

 

 

格式化命令

mkfs.ext2,

mkfs.ext3,

mkfs.ext4

mke2fs  -t ext4  /dev/sdb1

-t 文件系统格式 ext3 ext4

-b 指定每一个数据块大小,目前支持1024, 2048 、409六、8192

-L 分区标签 label

格式化时默认blocks (5.00%) reserved for the super user  //给超级用户预留的一部分空间,用来做为特殊用途

-m  能够更改这个比例,如 mke2fs -m 0.1 /dev/sdb1   //意思是,只预留出0.1% 给root用户

 

块设备不分区也能够格式化

不分区直接在块设备上进行文件系统格式化
fdisk -l
Disk /dev/vdb: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

mkfs -t ext4 /dev/vdb 
echo "/dev/vdb  /data  ext4  defaults,noatime,nodiratime   0 0" >>/etc/fstab
mount -a

df -TH
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vda1      ext3   53G  1.3G   49G   3% /
/dev/vdb       ext4   11G   24M  9.9G   1% /data


fdisk -l
Disk /dev/vdb: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

 

怎麽知道一个块设备是否已经格式化安装了文件系统,若是格式化过,他的标签label是啥

有两种方法:

一、若是一个块设备没有安装文件系统,是不能被挂载的

mount /dev/vdb1 /data
mount: you must specify the filesystem type

二、file 命令的-s参数能够设备块设备

-s, --special-files
Normally, file only attempts to read and determine the type of argument files which stat(2) reports are ordinary files.
This prevents problems, because reading special files may have peculiar consequences. Specifying the -s option causes
file to also read argument files which are block or character special files. This is useful for determining the
filesystem types of the data in raw disk partitions, which are block special files. This option also causes file to
disregard the file size as reported by stat(2) since on some systems it reports a zero size for raw disk partitions.


没有安装文件系统会只显示data

file -s /dev/vdb1
/dev/vdb1: data

安装了文件系统会显示文件系统类型
整个磁盘

file -s /dev/vda
/dev/vda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot drive 0x80, 1st sector stage2 0xf0800, GRUB version 0.94; partition 1: ID=0x83, active, starthead 32, startsector 2048, 16775168 sectors, code offset 0x48

整个分区

file -s  /dev/vda1
/dev/vda1: Linux rev 1.0 ext3 filesystem data (needs journal recovery) (large files)

/dev/vdc是swap分区,能够识别swap分区,标签label是lswap,

file -s /dev/vdc
/dev/vdc: Linux/i386 swap file (new style) 1 (4K pages) size 524287 pages Label lswap
file -s /dev/vdc1
/dev/vdc1: Linux/i386 swap file (new style) 1 (4K pages) size 524277 pages

 

 

 

 

挂载、卸载磁盘分区
mount 不加任何选项和参数,查看已挂载状况
mount 格式  mount -t type  /dev/sda5  /mnt
mount -t 指定挂载分区格式,如 -t ext3
mount -n 挂载分区的时候不写入/etc/mtab --no-mtab,对于/etc目录变为只读文件系统来讲这个时候很是有用
umount  /dev/sda5 或者 umount /mnt
umount -lf  强制卸载

-f Force unmount (in case of an unreachable NFS system). (Requires kernel 2.1.116 or later.)
-l Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as
it is not busy anymore. (Requires kernel 2.4.11 or later.)


umount -a -t cifs  卸载全部的cifs文件系统

#挂载/dev/sdb5 到 /db5目录  使用ext3文件系统 
# mount -t ext3 -o noatime,auto,ro  /dev/sdb5  /db5
#挂载tmpfs分区到/tmp 目录 使用tmpfs  文件系统  选项是最多只能使用64m内存  限制/tmp这个分区只能使用10000个inode size选项和nr_inodes选项均可以防止tmpfs用尽内存
# mount -t tmpfs  –o size=64m   nr_inodes=10000   tmpfs  /tmp        #Linux就这个范儿 P342
# mount -av -n -t nonfs,nproc

 

不要把开机启动的东西,例如mount 挂载点,启动服务等写到 .bash_profile ,.bashrc 这些配置,

这样会致使每次启动shell都从新启动一次!!!

 

 


mount  -o 后面跟各类选项,好比remount,ro,noatime等 ,具体选项以下:

mount  -o noatime,auto,ro  /dev/sdb5  /db5

 

“atime/noatime” : atime表示记录文件的访问时间,若是磁盘里很是多小的图片或者文件,那么会致使必定性能问题,通常用noatime
“async/sync” : async表示和磁盘和内存不一样步,系统每隔一段时间把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;
“auto/noauto” : 开机自动挂载/不自动挂载
“default” : 按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser, async
“ro” : 按只读权限挂载 ;
“rw” : 按可读可写权限挂载 ;

“exec/noexec” : 容许/不容许可执行文件执行,但千万不要把根分区挂载为noexec,那就没法使用系统了,连mount命令都没法使用了,这时只有从新作系统了;
“user/nouser” : 容许/不容许root外的其余用户挂载分区,为了安全考虑,请用nouser ;
“suid/nosuid” : 容许/不容许分区有suid属性,通常设置nosuid ;
“usrquota” : 启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会作介绍;
“grquota” : 启动群组磁盘配额模式;

特殊用法:

mount -o remount ,ro  /dev/sdb5   /db5    #已经挂载的分区而且已经在使用,能够用remount 来加其余mount选项

mount -o loop  1.iso  /mnt    #挂载镜像文件

/dev/cdrom的真正设备名 /dev/sr0

 

mount --bind (绑定挂接技术 Linux就这个范儿 P342)
/dir1 /dir2 #挂载目录 /dir1 删除了 ,/dir2也会删除,不多用,至关于目录的软连接

#mkdir /dev/shm/tmp
#chmod 1777 /dev/shm/tmp
#mount --bind /dev/shm/tmp /tmp #全部使用/tmp目录做为临时目录的程序都会受益于tmpfs所提供的高性能

 

 

mount -a 会根据/etc/fstab 挂载全部分区
UUID是如何来的,使用命令 blkid 或lsblk,建议使用lsblk命令  lsblk -f
blkid命令 后能够不跟设备名,列出全部
mount UUID=“……” /mnt mount UUID="XXXXXXX" /data/
使用UUID的好处是,多块磁盘,若是在服务器上换了插槽位置,设备名会变,但UUID是惟一的
注意:https://cloud.tencent.com/document/product/362/6735
UUID和文件系统是一一对应的,也就是文件系统 UUID 与文件系统相关,从新格式化文件系统后,UUID将会发生变化,所以有可能会致使您的自动挂载设置失效

 

 

 

磁盘分区配置文件 /etc/fstab   6列
第一列就是分区的标识,能够LABEL,也能够UUID,固然也能够 分区名/块设备名(/dev/sda1或/dev/sda);最好写UUID,由于加磁盘以后,分区标识(/dev/sda1)可能会变,/boot分区就是写UUID
第二列是挂载点;
第三列是分区的文件系统;
第四列则是mount的一些挂载参数,通常状况下,直接写defaults便可;
第五列的数字表示是否dump备份,是的话这里就是1,不然就是0;备份日志

第六列是开机时是否自检分区。1,2都表示检测,0表示不检测,/ 分区必须设为1,并且整个fstab中只容许出现一个1,1比2优先级高,因此先检测1,而后再检测2,若是有多个分区须要开机检测那么都设置成2吧,1检测完了后会同时去检测2。

 

LVM

CentOS6 在命令行模式下安装只能使用LVM,在图形界面模式安装可让你选自定义布局和LVM,听说这是CentOS的bug

 

 

 

 

fsck  只检查文件系统 ,不检查磁盘坏块
e2fsck -f 强制检查 -d 调试e2fsck -y 非交互

须要先卸载挂载点
umount  /dev/sdb5 /
e2fsck -yf /dev/vgdata/lvdata1

http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=6508&highlight=fsck

 

 



 

nobarrier的意思
http://mp.weixin.qq.com/s/4hdrW9KdZGAE4SXY7mVZAQ
如今的不少文件系统会在数据提交时强制底层设备刷新cache,避免数据丢失,称之为write barriers。
可是,其实咱们数据库服务器底层存储设备要么采用RAID卡,RAID卡自己的电池能够掉电保护;要么采用Flash卡,它也有自我保护机制,保证数据不会丢失。因此咱们能够安全的使用nobarrier挂载文件系统。
设置方法以下:
对于ext3, ext4和 reiserfs文件系统能够在mount时指定barrier=0;对于xfs能够指定nobarrier选项。

pgsql修炼之道从小工到专家 唐成 P356
为保证数据可靠性,IO写的顺序很重要,好比在pg中必需要求写入wal日志后,才能写入数据块的数据,因为数据存放在cache里
用户发起的写顺序不必定等于实际写入非易失性硬件介质的顺序,由于各级cache都有可能改变IO顺序,例如在linux的io调度器上
为了提升性能,经过电梯算法改变IO顺序,在raid卡上也有相应的算法改变IO顺序,而且在硬盘内部也有几兆到几十兆内存作cache
他里面也有算法改变IO顺序提供性能,那么是否有办法保证IO的顺序呢,
在操做系统中为保证IO的顺序,专门提供一种IO机制,被称为barriers IO
barriers IO定义以下:
barriers 请求以前全部在队列中的请求必须在barriers 请求开始前被结束,并持久化到非易失性硬件介质
barriers 请求以后的IO须要等到其写入后才能获得执行
barriers IO是操做系统层面的概念,为了实现barriers IO底层硬件和驱动必须有相应支持。SCSI/SAS硬盘经过FUA技术和synchronize cache技术
来实现barriers IO功能。FUA技术让用户能够不使用硬盘的缓存直接访问磁盘介质,synchronize cache技术让用户把整个硬盘上的缓存
都刷新到介质上。SATA硬盘能够经过flush cache ext调用来支持barriers IO。若是SATA硬盘开启了NCQ功能,也能够处理FUA
linux开启NCQ功能须要libata驱动。
dmesg |grep libata
多数文件系统都提供了barriers IO选项,ext3和ext4默认开启了barriers IO,想关闭,barrier=0
mount -o barriers=0 /dev/sdb1 /data/pgdata
xfs默认开启barriers IO,想关闭,nobarrier
mount -o nobarrier /dev/sdb1 /data/pgdata

总结:开启barriers IO表示不使用操做系统缓存和硬盘缓存,默认是开启了barriers IO


http://www.liusuping.com/storage/das-nas-san-cunchu-jishu-bijiao.html

 

DAS、NAS、SAN存储技术的比较

NAS:以文件为单位

SAN:以区块为单位

到时候搭建SAMBA服务器的时候要注意CIFS协议!

 

什么是NAS

网络储存设备 (Network Attached Storage,NAS),(网络附加存储)是一种专门的资料储存技术的名称,它能够直接链接在电脑网络上面,不一样操做系统的使用者提供了集中式资料存取服务。

NAS和传统的档案储存服务或是直连储存设备不一样的地方在于NAS设备上面的操做系统和软件只提供了资料储存、资料存取、以及相关的管理功能;此外,NAS设备也提供了不止一种档案传输协议。NAS系统一般有一个以上的硬盘,并且和传统的档案服务器同样,一般会把它们组成RAID提供服务;有了NAS之后,网络上的其余服务器就能够没必要再兼任档案服务器的功能。NAS的型式不少样化,能够是一个大量生产的嵌入式设备,也能够在通常的电脑上执行NAS的软件

NAS用的是以档案为单位的通信协定,例如像是NFS(在UNIX系统上很常见)或是SMB(经常使用在Windows系统)。NAS所用的是以档案为单位的通信协定,相对之下,储域网络SAN)用的则是以区块为单位的通信协议一般是透过SCSI再转为光纤通道或是iSCSI

NAS设备用的一般是精简版的操做系统,只提供了最单纯的档案服务和其相关的通信协定;举例来讲,有一个叫FreeNAS的开放源码NAS软件用的就是精简版的FreeBSD,它能够在通常的电脑硬件上执行,而商业化的嵌入式设备用的则是封闭源码的操做系统和通信协定程式。

简单来讲NAS就是一台在网络上提供文档共享服务的的网络存储服务器

NAS的网络结构

NAS存储使用以太网接口直接接入现有以太网网络实现文件的共享。部署灵活,不会对现有网络结构产生变化。

 

NAS存储的优缺点

NAS的优势:

NAS设备通常支持多计算机平台,用户经过网络支持协议可进入相同的文档,于是NAS设备无需改造便可用于混合Unix/Windows NT局域网内。

其次,NAS设备的物理位置一样是灵活的。它们可放置在工做组内,靠近数据中心的应用服务器,或者也可放在其余地点,经过物理链路与网络链接起来。无需应用服务器的干预,NAS设备容许用户在网络上存取数据,这样既可减少CPU的开销,也能显著改善网络的性能。

对现有网络环境有很好的适应性。NAS设备对企业网络环境基本上没有什么特别的要求和限制,能够很方便的在现有的网络环境中添加NAS设备。这是由于NAS所支持的那些操做系统和网络协议都是已在网络中获得很好的支持,NAS设备的添加不会引起新的网络支持的问题。

高可扩展性。NAS设备的高扩展性很好的知足了企业日益增加的存储需求。NAS的扩展只需经过添加一个节点及网络设备便可(作到真正的即插即用,而且部署位置很是灵活),基本上启动NAS设备,运行相应的网络文件系统,并将这个NAS设备接入网络环境就完成添加了。

NAS集群技术经过一组NAS设备集合起来造成如同一个NAS设备,NAS集群技术提供了必定的存储分流,使得不一样的NAS设备能够同时工做来知足网络存储的存储需求,从而提升了NAS系统的总体性能,并解决了多个NAS系统的扩展性和管理趋于复杂性的问题。

易管理性。NAS自己就是为了企业内部网络而设计,实现了异构平台下的数据共享,所以NAS的使用和维护成本就相对很低,管理和维护工做也相对简单。用户只需一些简单的初期设置和管理,NAS设备就能够很好的运行起来。

基于网络服务的丰富应用

NAS存储是基于TCP/IP协议的一台网络文件服务器,所以除了提供基本的NFS、SMB等网络共享服务以外还能够根据不一样的NAS存储设备提供一些高级的网络应用,以下图威联通NAS所示

在一台NAS设备上同时提供文件共享服务,FTP服务,web服务,日志服务器、打印服务器及备份服务器等基于TCP/IP协议的网络服务。例如在监控存储部署方面具备较大优点。

NAS相对于DAS部署灵活,支持多用户共享使用。

NAS相对于SAN部署成本很是低。

NAS的缺点

NAS没有解决与文件服务器相关的一个关键性问题,即便用过程当中的带宽消耗。与将数据流从LAN中转移出去的存储区域网(SAN)不一样,NAS仍使用网络进行备份和恢复。NAS 的一个缺点是它将存储事务由并行SCSI链接转移到了网络上。也就是说LAN除了必须处理正常的最终用户传输流量外,还必须处理包括备份操做的存储磁盘请求。

存储性能的局限。NAS只适合应用在较小的网络或者局域网内。由于NAS受限于企业网络的带宽,极可能会出现当多台客户端访问NAS文件系统时,NAS的性能大大的降低,最终不能知足用户的需求。

可靠性还有待提升。当企业内部网络发展到必定的规模时,NAS设备的数据服务和数据管理造成了网络的双重负担,也就是说NAS除了要处理正常的终端数据I/O请求外,还须要作备份和恢复等操做。而且NAS后期的扩容成本高;通常的NAS没有高可用配置,容易造成单点故障

NAS和简单PC服务器的区别

价格优点:

用服务器来搭建NAS仍是购买专用NAS设备

省去了键盘,鼠标,显示器等外部设备,从而大大节约了经费开销,按照平均存储价格来讲NAS单位存储对应的价格要远远低于服务器并且他采用了RAID 5级别的数据保护技术,从而让数据存储更加放心更加安全。

稳定性优点:

功能单纯而且移除了许多没必要要的链接器、控制晶片、电子回路,如键盘、鼠标、VGA等;因此架构上相比常见计算机有了简化。

管理优点

NAS设备用的一般是精简版的操做系统,提供了最单纯的档案服务和其相关的通信协定,而且针对NAS的服务提供了简便灵活的管理软件。例如web管理,客户端管理等方式。

DAS、NAS和SAN的比较

DAS:直接附加存储

DAS(Direct Attached Storage—直接附加存储)是指将存储设备经过SCSI接口或光纤通道直接链接到一台计算机上。DAS的适用环境为:

1)服务器在地理分布上很分散,经过SAN或NAS在它们之间进行互连很是困难时。

2)存储系统必须被直接链接到应用服务器(如Microsoft Cluster Server或某些数据库使用的“原始分区”)上时;

3)只有单台服务器,存储设备无需与其余服务器共享

SAN:存储区域网络

先看下下图的SAN存储的网络拓扑图

SAN存储经过光纤交换机将磁盘空间分配给不一样的服务器,服务器经过以太网对外提供服务,存储区域与用户的应用区域隔离

SAN(存储区域网络)经过光纤通道链接到一群计算机上。在该网络中提供了多主机链接,但并不是经过标准的网络拓扑。

高带宽:SAN的结构容许任何服务器链接到任何存储阵列,这样无论数据置放在那里,服务器均可直接存取所需的数据。由于采用了光纤接口,SAN还具备更高的带宽

独立的存储网络:由于SAN解决方案是从基本功能剥离出存储功能,因此运行备份操做就无需考虑它们对网络整体性能的影响。

管理便捷:SAN方案也使得管理及集中控制实现简化,特别是对于所有存储设备都集群在一块儿的时候。

远距离部署:光纤接口提供了50千米的链接长度,这使得实现物理上分离的、不一样机房的存储变得很是容易。

SAN主要用于存储量大的工做环境,如ISP、银行等,最大的缺点就是成本高。

总结

根据DAS、NAS、SAN的不一样特性,DAS及SAN是基于存储空间的磁盘分配,是基于硬件层面的存储方式,而NAS则是基于应用层面的存储方式,能够根据应用环境来对其进行总结。

DAS多采用SCSI或SAS接口,因为部署节点的单一性及较高的性能,适用于单一节点的企业级应用,或者地理位置比较分散的服务器使用。DAS因为部署的局限性目前使用量愈来愈少。

NAS利用现有以太网网络,所以部署灵活,部署的成本很是低,基于TCP/IP协议的特性能够提供丰富的网络服务,基于文件的形式提供数据的存储及备份,可是TCP/IP协议决定了数据传输的数据打包及解包会占用系统资源,另外传输速率受限于以太网的速率,所以不适用于企业级应用,一般部署于部门级应用。

SAN存储使用光纤网络进行传输,而且独立于应用网络(不一样物理网段)能够提供很是高的带宽,数据的传输基于块协议,无需对数据进行处理,直接进行传送,所以性能最好,另外光纤线路能够提供远距离的高带宽链路,能够实现数据中心的异地灾备应用,可是部署成本较高。所以SAN存储多应用于企业级的存储部署中。

随着技术的发展,以iSCSI技术的IP SAN技术使NAS存储抢占了一部分SAN存储的市场份额,另外随着10Gb以太网技术的发展NAS存储的发展空间将会更加广阔。

f


LVM

 

LVM的一些问题汇总
--http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7664&page=1&extra=#pid38836

 

看了几篇文章和视频,跟啊铭老师也沟经过,下面列出啊铭老师没有说到的命令和本身的一些问题总结
RHCA会考到LVM 扩容 缩容

九个查看命令
pvdisplay
vgdisplay
lvdisplay
pvs 经常使用
vgs 经常使用
lvs 经常使用
pvscan
vgscan
lvscan

激活命令
lvchange -ay /dev/vg0 激活,若是逻辑卷还未激活的话就激活
lvchange -an /dev/vg0  休眠


root@steven ~]# pvscan
  PV /dev/sda2   VG VolGroup   lvm2 [19.51 GiB / 0    free]
  Total: 1 [19.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 0 [0   ]
[root@steven ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup" using metadata type lvm2
[root@steven ~]# lvscan
  ACTIVE            '/dev/VolGroup/lv_root' [17.54 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_swap' [1.97 GiB] inherit
[root@steven ~]# pvs                   #Attr不是 a-- 表示未激活  大小是19.51g  没有剩余空间
  PV                      VG           Fmt      Attr     PSize      PFree
  /dev/sda2      VolGroup     lvm2      a--      19.51g       0 
[root@steven ~]# vgs              # 这个vg下有一个pv  2个lv  大小跟pv的大小同样都是19.51g  没有剩余空间
  VG               #PV  #LV #SN      Attr          VSize      VFree
  VolGroup         1      2      0      wz--n-        19.51g        0 
[root@steven ~]# lvs
  LV                      VG                Attr             LSize          Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root           VolGroup        -wi-ao----     17.54g                                                    
  lv_swap          VolGroup        -wi-ao----      1.97g      

lvreduce -L 700M /dev/vgdata/lvdata1
通常用大L 指定大小,弊端就是有可能用不完vg里面的空间
用小 l,-l 127, 127 个PE ,弊端是须要计算,好比一个PE 4M 127*4M=508M 可是不会出现用不完vg的空间的状况

注意:PE和磁盘的最小存储单元“扇区”或“块”或“簇”不一样,它只是LVM用于进行动态伸缩尺寸的一个最小分配单元,而真正存储文件的时候,仍是会利用磁盘自己的最小存储单元。

问题一
使用lvreduce进行缩容的时候须要umount  ,若是apache相关文件放在/data下,你要对/data进行缩容,那么apache只能停机


问题二
扩容步骤一、先fdisk分区 
fdisk /dev/sdb
n new
l  login分区
+200M  
t  分区类型
15  第15个分区
8e  lvm类型
w   保存

二、从新读取分区
partprobe  

三、建pv ,扩展vg,扩展lv,resize
pvcreate /dev/sdb15   
vgextend vg0 /dev/sdb15
lvextend –L 1G /dev/vg0/LV01  #扩展LV
resize2fs -p /dev/vg0/LV01    


http://video.baomihua.com/11386501/19695773




问题三
5) 当磁盘或分区损坏时,如何转移数据
pvmove 转移空间数据 --> vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去 --> pvremove命令将即将坏的磁盘或者分区从系统中删除掉 --> 拆除或修复磁盘
pvmove /dev/sdb1 
vgreduce vgdata /dev/sdb1
pvremove  /dev/sdb1

执行pvmove 的时候,Linux是把sdb1 的数据移动到别的分区




lvm配置 (参考内容,你们自行实践)
LVM是Linux环境中对磁盘分区进行管理的一种机制,是创建在硬盘和分区之上、文件系统之下的一个逻辑层,可提升磁盘分区管理的灵活性。支持动态扩充磁盘空间。
首先从空的硬盘sdb上建立两个分区sdb1 1G, sdb2 2G。
1)建立逻辑卷
pvcreate /dev/sdb1 /dev/sdb2   //建立物理卷
pvdisplay   //能够列出已经建立的物理卷
vgcreate vgdata /dev/sdb1 /dev/sdb2        //建立卷组 vgdata ,并将刚才建立好的两个物理卷加入该卷组
vgdisplay //能够列出已经建好的卷组
# 默认PE大小为4MB,PE是卷组的最小存储单元.能够经过 –s参数修改大小。

lvcreate -L 500M -n lvdata1 vgdata  //分割500M给新的逻辑卷lvdata1-n :指定 lv的名字
lvdisplay //列出当前的逻辑卷

mkfs.ext4 /dev/vgdata/lvdata1  //格式化逻辑卷
mount /dev/vgdata/lvdata1  /aming  //挂载逻辑卷

2) 扩展逻辑卷
逻辑卷lvdata1不够用了,咱们如何给他增长空间呢?
lvextend –L +500M /dev/vgdata/lvdata1  //给lvdata1增长500M空间。
resize2fs  -p /dev/vgdata/lvdata1  //同步文件系统


3)扩展卷组
当卷组不够用的状况下,咱们也是能够扩展卷组的。咱们再建立一个新的分区叫作/dev/sdb3.
vgextend vgdata /dev/sdb3  //把sdb3加入到卷组vgdata中

4)减小逻辑卷大小
卸载 --> e2fsck 检测剩余空间 --> resize2fs 同步文件系统 --> 使用lvreduce命令将逻辑卷减小
注意:文件系统大小和逻辑卷大小必定要保持一致才行。若是逻辑卷大于文件系统,因为部分区域未格式化成文件系统会形成空间的浪费。

umount  /data1
e2fsck -yf /dev/mapper/vgdata-lvdata1

resize2fs -p /dev/mapper/vgdata-lvdata1 
lvreduce -L 700M /dev/vgdata/lvdata1
mount /dev/vgdata/lvdata1 /data1

5) 当磁盘或分区损坏时,如何转移数据
pvmove 转移空间数据 --> vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去 --> pvremove命令将即将坏的磁盘或者分区从系统中删除掉 --> 拆除或修复磁盘
pvmove /dev/sdb1 
vgreduce vgdata /dev/sdb1
pvremove  /dev/sdb1

6) 删除整个逻辑卷
umount卸载逻辑卷 --> 修改配置文件/etc/fstab(如果以前更改过) --> lvremove 删除逻辑卷lvdata1 --> vgremove 删除卷组vgdata --> pvremove 将物理卷转化成普通分区
umount /dev/vgdata/lvdata1 
lvremove /dev/vgdata/lvdata1
vgremove vgdata
pvremove /dev/sdb2
pvremove /dev/sdb3


------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
动手实验 动态扩容和缩容

扩容
一、在线加一块磁盘
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

添加1G大小的磁盘
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

完成
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 


二、在终端里面 fdisk -l 就能看到新添加的磁盘,若是看不到可使用这个方法
地址:不用重启在CentOS / RHEL 虚拟机中添加一块新硬盘

  1. 肯定主机总线号,磁盘是有总线链接着的
  2. [root@steven ~]# ls /sys/class/scsi_host/
  3. host0 host1 host2
  4. 从新扫描SCSI总线来添加设备,由于添加的是SCSI磁盘,因此扫描的是SCSI总线
  5. [root@steven ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
  6. [root@steven ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
  7. [root@steven ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
复制代码



<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

三、用fdisk分出一个扩展分区 ,固然分出主分区也是能够的
fdisk /dev/sdb
n new
e
+500M  大小500m  (我这里只分了500M,固然用尽1G也是能够的)
w   保存
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

四、再在/dev/sdb 上分逻辑分区

  1. [root@steven ~]# fdisk /dev/sdb
复制代码

n
l
+200M
p  打印出来看一下分区号

  1. Device Boot      Start         End      Blocks   Id  System
  2. /dev/sdb2               1          65      522081    5  Extended
  3. /dev/sdb5               1          26      208782   83  Linux
复制代码

t
5
8e
w
五、从新读取分区partprobe  
partprobe

六、建pv 
pvcreate /dev/sdb5 

  1. [root@steven ~]# pvcreate /dev/sdb5 
  2.   Physical volume "/dev/sdb5" successfully created
复制代码


七、查看当前系统中的vg状况
vgs

  1. [root@steven ~]# vgs
  2.   VG       #PV #LV #SN Attr   VSize  VFree
  3.   VolGroup   1   2   0 wz--n- 19.51g    0
复制代码

八、扩展vg   增长了200M的vg
vgextend VolGroup /dev/sdb5   

  1. [root@steven ~]# vgextend VolGroup /dev/sdb5
  2. .  Volume group "VolGroup" successfully extended
复制代码


扩容前


<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 


九、扩展lv

lvextend -L +200M /dev/VolGroup/lv_root

设备文件名规律 /dev/VG名/LV名

  1. [root@steven dev]# lvextend -L +200M /dev/VolGroup/lv_root
  2.   Size of logical volume VolGroup/lv_root changed from 17.54 GiB (4490 extents) to 17.73 GiB (4540 extents).
  3.   Logical volume lv_root successfully resized
复制代码

十、同步
resize2fs  -p /dev/VolGroup/lv_root

  1. [root@steven dev]# resize2fs  /dev/VolGroup/lv_root
  2. resize2fs 1.41.12 (17-May-2010)
  3. Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
  4. old desc_blocks = 2, new_desc_blocks = 2
  5. Performing an on-line resize of /dev/VolGroup/lv_root to 4648960 (4k) blocks.
  6. The filesystem on /dev/VolGroup/lv_root is now 4648960 blocks long.
复制代码


扩容后  Use% 比以前少了,说明扩容成功
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 


扩容时的两个谣言
一、将新的磁盘分区加入到卷组vg以前,须要对分区进行格式化为lv所用的文件系统,经过实验证实是不须要格式化的,直接加入到卷组vg便可
二、对lv进行扩容,须要先umount才能扩容,经过实验证实是不须要umount的,也就是说在Apache服务或者其余服务正常运行的状况下就能够扩容


====================================================================
===============================================================
缩容(扩容能够在线扩容,可是缩容不能是在线的)

由于刚才扩容是在根分区扩容的,那么缩容涉及到umount,那么就不在根分区上面作了,咱们另外新建一个分区
一、创建文件夹
mkdir /aming

  1. [root@steven ~]# mkdir /aming
复制代码


二、咱们刚才还有500M的空间能够利用,咱们利用250M创建一个主分区,再用250M创建另外一个主分区

fdisk /dev/sdb
n
p
1
+250M
t
1
8e
w
sdb1 lvm


fdisk /dev/sdb
n
p
3
+220M
t
3
8e
w
sdb3  lvm

三、建立物理卷

  1.    Device Boot      Start         End      Blocks   Id  System
  2. /dev/sdb1              66          98      265072+  8e  Linux LVM
  3. /dev/sdb2               1          65      522081    5  Extended
  4. /dev/sdb3              99         127      232942+  8e  Linux LVM
  5. /dev/sdb5               1          26      208782   8e  Linux LVM
复制代码

partprobe
pvcreate     /dev/sdb1     /dev/sdb3 

  1. [root@steven ~]# pvcreate /dev/sdb1
  2.   Physical volume "/dev/sdb1" successfully created
  3. [root@steven ~]# pvcreate /dev/sdb3
  4.   Physical volume "/dev/sdb3" successfully created
复制代码

四、查看物理卷pvs
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

五、建立卷组vgdata
vgcreate vgdata /dev/sdb1

  1. [root@steven ~]# vgcreate vgdata /dev/sdb1
  2.   Volume group "vgdata" successfully created
复制代码


查看卷组
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

六、建立逻辑卷
lvcreate -L +240M -n lvdata1 vgdata

  1. [root@steven ~]# lvcreate -L +240M -n lvdata1 vgdata
  2.   Logical volume "lvdata1" created
复制代码

查看逻辑卷
lvs
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

七、格式化逻辑卷mkfs.ext4  /dev/vgdata/lvdata1

  1. [root@steven ~]# mkfs.ext4 /dev/vgdata/lvdata1
  2. mke2fs 1.41.12 (17-May-2010)
  3. 文件系统标签=
  4. 操做系统:Linux
  5. 块大小=1024 (log=0)
  6. 分块大小=1024 (log=0)
  7. Stride=0 blocks, Stripe width=0 blocks
  8. 61440 inodes, 245760 blocks
  9. 12288 blocks (5.00%) reserved for the super user
  10. 第一个数据块=1
  11. Maximum filesystem blocks=67371008
  12. 30 block groups
  13. 8192 blocks per group, 8192 fragments per group
  14. 2048 inodes per group
  15. Superblock backups stored on blocks: 
  16.         8193, 24577, 40961, 57345, 73729, 204801, 221185
  17. 正在写入inode表: 完成                            
  18. Creating journal (4096 blocks): 完成
  19. Writing superblocks and filesystem accounting information: 完成
  20. This filesystem will be automatically checked every 24 mounts or
  21. 180 days, whichever comes first.  Use tune2fs -c or -i to override.
复制代码


八、挂载 若是要永久挂载 就要写在/etc/fstab 文件里面
mount /dev/vgdata/lvdata1  /aming

  1. [root@steven ~]# cd /aming
  2. [root@steven aming]# ls
  3. lost+found
复制代码