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,传统方式扩容文件系统 第七节课

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

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}
----------------------------------------------------------------------

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

parted 分区工具

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

(GPT分区格式),parted工具,单个分区可以大于2TB

(MBR分区格式),fdisk工具,单个分区小于2TB

上半节课

df -iTh

du -sh

ls -lhd /tmp/

fdisk

partprobe

partx

下半节课

# cat /etc/filesystems

mkfs.ext4

mount

tmpfs

nr_inodes

/etc/fstab

fsck

df命令

df -h :可读形式

df -TH --total :显示所有分区加起来的空间

df -TH:文件系统类型

df -i:inode的数量

df -iTh

注意inode的使用

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

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% -

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

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个字节 因为有两个字符

# 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 /

磁盘的分区和格式化

mbr分区用fdisk命令,gpt分区用gdisk命令

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

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

MBR:P+E=<4

GPT:128

直接写分区大小

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

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

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

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

sda1、sda2、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

mkfs.xfs /dev/sdb1

mke2fs  -t ext4  /dev/sdb1

-t 文件系统格式 ext3 ext4

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

-L 分区标签 label

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

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

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

不分区直接在块设备上进行文件系统格式化
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/vdbecho "/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

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

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

有两种方法:

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

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

2、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

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

不要把开机启动的东西,例如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

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

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 UUXXXXXXX" /data/

使用UUID的好处是,多块磁盘,如果在服务器上换了插槽位置,设备名会变,但UUID是唯一的

注意:https://cloud.tencent.com/document/product/362/6735

UUID和文件系统是一一对应的,也就是文件系统 UUID 与文件系统相关,重新格式化文件系统后,UUID将会发生变化,因此有可能会导致您的自动挂载设置失效

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

磁盘分区配置文件 /etc/fstab 6列

第一列就是分区的标识,可以LABEL,也可以UUID,当然也可以 分区名/块设备名(/dev/sda1或/dev/sda);最好写UUID,因为加磁盘之后,分区标识(/dev/sda1)可能会变,/boot分区就是写UUID

第二列是挂载点;

第三列是分区的文件系统;

第四列则是mount的一些挂载参数,一般情况下,直接写defaults即可,如果是网络磁盘,需要加_netdev参数表示当系统联网后再进行挂载操作,以免系统开机时间过长或开机失败

第五列的数字表示是否dump备份,是的话这里就是1,否则就是0;备份日志

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

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

如果是网络磁盘,例如iscsi磁盘

/dev/sda1 /mnt/iscsi-sda1 ext4 defaults,_netdev 0 0

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存储使用以太网接口直接接入现有以太网网络实现文件的共享。部署灵活,不会对现有网络结构产生变化。

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

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协议的网络服务。例如在监控存储部署方面具有较大优势。

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

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存储通过光纤交换机将磁盘空间分配给不同的服务器,服务器通过以太网对外提供服务,存储区域与用户的应用区域隔离

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

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 AttrPSizePFree

/dev/sda2 VolGroup lvm2 a-- 19.51g 0

[root@steven ~]# vgs #这个vg下有一个pv 2个lv 大小跟pv的大小一样都是19.51g 没有剩余空间

VG #PV#LV #SN Attr VSizeVFree

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只能停机

问题二

扩容步骤1、先fdisk分区

fdisk /dev/sdb

n new

l login分区

+200M

t 分区类型

15 第15个分区

8e lvm类型

w 保存

2、重新读取分区

partprobe

3、建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

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

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

动手实验 动态扩容和缩容

扩容

1、在线加一块磁盘

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

添加1G大小的磁盘

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

完成

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

2、在终端里面 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 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

3、用fdisk分出一个扩展分区 ,当然分出主分区也是可以的

fdisk /dev/sdb

n new

+500M 大小500m (我这里只分了500M,当然用尽1G也是可以的)

w 保存

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

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

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

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

5、重新读取分区partprobe

partprobe

6、建pv

pvcreate /dev/sdb5

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

7、查看当前系统中的vg情况

vgs

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

8、扩展vg 增加了200M的vg

vgextend VolGroup /dev/sdb5

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

扩容前

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

9、扩展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
复制代码

10、同步

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 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

扩容时的两个谣言

1、将新的磁盘分区加入到卷组vg之前,需要对分区进行格式化为lv所用的文件系统,通过实验证明是不需要格式化的,直接加入到卷组vg即可

2、对lv进行扩容,需要先umount才能扩容,通过实验证明是不需要umount的,也就是说在Apache服务或者其他服务正常运行的情况下就可以扩容

====================================================================

===============================================================

缩容(扩容可以在线扩容,但是缩容不能是在线的)

因为刚才扩容是在根分区扩容的,那么缩容涉及到umount,那么就不在根分区上面做了,我们另外新建一个分区

1、建立文件夹

mkdir /aming

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

2、我们刚才还有500M的空间可以利用,我们利用250M建立一个主分区,再用250M建立另一个主分区

fdisk /dev/sdb

1

+250M

t

1

8e

w

sdb1 lvm

fdisk /dev/sdb

3

+220M

t

3

8e

w

sdb3 lvm

3、创建物理卷

  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
复制代码

4、查看物理卷pvs

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

5、创建卷组vgdata

vgcreate vgdata /dev/sdb1

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

查看卷组

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

6、创建逻辑卷

lvcreate -L +240M -n lvdata1 vgdata

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

查看逻辑卷

lvs

<ignore_js_op 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;'>centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

7、格式化逻辑卷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.
复制代码

8、挂载 如果要永久挂载 就要写在/etc/fstab 文件里面

mount /dev/vgdata/lvdata1 /aming

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

fdisk -l

  1. Disk /dev/mapper/vgdata-lvdata1: 251 MB, 251658240 bytes
  2. 255 heads, 63 sectors/track, 30 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk identifier: 0x00000000
复制代码

9、扩展vg ,将sdb3加进来

vgextend vgdata /dev/sdb3

  1. [root@steven aming]# vgextend vgdata /dev/sdb3
  2. Volume group "vgdata" successfully extended
复制代码

10、扩展lv

lvextend -L +230M /dev/vgdata/lvdata1

  1. [root@steven aming]# lvextend -L +230M /dev/vgdata/lvdata1
  2. Rounding size to boundary between physical extents: 232.00 MiB
  3. Size of logical volume vgdata/lvdata1 changed from 240.00 MiB (60 extents) to 472.00 MiB (118 extents).
  4. Logical volume lvdata1 successfully resized
复制代码

11、同步

resize2fs -p /dev/vgdata/lvdata1

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

查看空间占用df -h<ignore_js_op 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;'> 缩容12、减少逻辑卷大小先cd回去root目录 cdumount -l /aming 强制卸载13、e2fsck 检测剩余空间e2fsck -yf /dev/vgdata/lvdata1-yf:不询问

  1. [root@steven ~]# e2fsck -yf /dev/vgdata/lvdata1
  2. e2fsck 1.41.12 (17-May-2010)
  3. 第一步: 检查inode,块,和大小
  4. 第二步: 检查目录结构
  5. 第3步: 检查目录连接性
  6. Pass 4: Checking reference counts
  7. 第5步: 检查簇概要信息
  8. /dev/vgdata/lvdata1: 13/120832 files (0.0% non-contiguous), 21656/483328 blocks
复制代码

14、resize2fs 同步文件系统 resize2fs -f /dev/vgdata/lvdata1

  1. [root@steven ~]# resize2fs -f /dev/vgdata/lvdata1
  2. resize2fs 1.41.12 (17-May-2010)
  3. The filesystem is already 483328 blocks long. Nothing to do!
复制代码

15、使用lvreduce命令将逻辑卷减少注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。lvreduce -L -230M /dev/vgdata/lvdata1

  1. [root@steven ~]# lvreduce -L -230M /dev/vgdata/lvdata1
  2. Rounding size to boundary between physical extents: 228.00 MiB
  3. WARNING: Reducing active logical volume to 244.00 MiB
  4. THIS MAY DESTROY YOUR DATA (filesystem etc.)
  5. Do you really want to reduce lvdata1? [y/n]: y
  6. Size of logical volume vgdata/lvdata1 changed from 472.00 MiB (118 extents) to 244.00 MiB (61 extents).
  7. Logical volume lvdata1 successfully resized
复制代码

16、重新挂载mount /dev/vgdata/lvdata1 /aming不知道为何superblock损坏,mount不上[root@steven ~]# mount /dev/vgdata/lvdata1 /amingmount: wrong fs type, bad option, bad superblock on /dev/mapper/vgdata-lvdata1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so===================================================================================================================删除LVM1、umount卸载逻辑卷先cd回去root目录 cdumount -l /aming 强制卸载修改配置文件/etc/fstab(若是之前更改过) 2、lvremove 删除逻辑卷lvdata1lvremove /dev/vgdata/lvdata1

  1. [root@steven ~]# lvremove /dev/vgdata/lvdata1
  2. Do you really want to remove active logical volume lvdata1? [y/n]: y
  3. Logical volume "lvdata1" successfully removed
复制代码

3、vgremove 删除卷组vgremove vgdata

  1. [root@steven ~]# vgremove vgdata
  2. Volume group "vgdata" successfully removed
复制代码

4、pvremove 将物理卷转化成普通分区pvremove /dev/sdb1 /dev/sdb3

  1. [root@steven ~]# pvremove /dev/sdb1 /dev/sdb3
  2. Labels on physical volume "/dev/sdb1" successfully wiped
  3. Labels on physical volume "/dev/sdb3" successfully wiped
复制代码

5、将sdb1和sdb3 转换回 83 Linux分区类型fdisk /dev/sdbl

  1. Command (m for help): l
  2. 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
  3. 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
  4. 2 XENIX root 3c PartitionMagic 83 Linux
复制代码

t1t3w6、查看分区类型partprobefdisk -l

  1. Disk /dev/sdb: 1073 MB, 1073741824 bytes
  2. 255 heads, 63 sectors/track, 130 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk identifier: 0xf27bd8ef
  7. Device Boot Start End Blocks Id System
  8. /dev/sdb1 66 98 265072+ 83 Linux
  9. /dev/sdb2 1 65 522081 5 Extended
  10. /dev/sdb3 99 127 232942+ 83 Linux
  11. /dev/sdb5 1 26 208782 8e Linux LVM
复制代码

7、格式化 sdb1和sdb3mkfs -t ext4 /dev/sdb1 mkfs -t ext4 /dev/sdb3

  1. [root@steven aming]# mkfs -t ext4 /dev/sdb3
  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. 58464 inodes, 232940 blocks
  9. 11647 blocks (5.00%) reserved for the super user
  10. 第一个数据块=1
  11. Maximum filesystem blocks=67371008
  12. 29 block groups
  13. 8192 blocks per group, 8192 fragments per group
  14. 2016 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 38 mounts or
  21. 180 days, whichever comes first. Use tune2fs -c or -i to override.
复制代码

8、创建目录[root@steven ~]# mkdir /testsdb1[root@steven ~]# mkdir /testsdb39、挂载[root@steven ~]# mount /dev/sdb1 /testsdb1[root@steven ~]# mount /dev/sdb3 /testsdb310、查看挂载情况

  1. [root@steven testsdb3]# mount
  2. /dev/mapper/VolGroup-lv_root on / type ext4 (rw)
  3. proc on /proc type proc (rw)
  4. sysfs on /sys type sysfs (rw)
  5. devpts on /dev/pts type devpts (rw,gid=5,mode=620)
  6. tmpfs on /dev/shm type tmpfs (rw)
  7. /dev/sda1 on /boot type ext4 (rw)
  8. none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
  9. sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
  10. /dev/sdb1 on /testsdb1 type ext4 (rw)
  11. /dev/sdb3 on /testsdb3 type ext4 (rw)
复制代码

11、卸载先cd 回根目录[root@steven testsdb3]# umount -l /testsdb3[root@steven testsdb3]# umount -l /testsdb112、删除sdb1和sdb3fdisk /dev/sdbd1d3wpartprobefdisk -l

  1. Device Boot Start End Blocks Id System
  2. /dev/sdb2 1 65 522081 5 Extended
  3. /dev/sdb5 1 26 208782 8e Linux LVM

d

LVM的构成原理

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

LVM两种写入模式

线性模式:写满一个再写下一个

交错模式:raid0,两个交错写入

lvm的默认写入模式是线性模式

lvm关闭写缓存的方法 《深度实践KVM》 P96

lvm的cache配置

建议将cache关闭,防止主机突然掉电造成数据丢失

默认是1为开启状态

cat lvm.conf |grep write_cache

# Configuration option devices/write_cache_state.

write_cache_state = 1

关闭/etc/lvm/lvm.conf文件中lvm的写缓存

write_cache_state=0

然后清空cache_dir指向的目录内容,默认路径是/etc/lvm/cache

cache_dir="/etc/lvm/cache"

rm -rf /etc/lvm/cache/


parted分区GPT格式

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

我们在课上讲的fdisk分区工具,它的分区格式为MBR,特点是,最多分4个主分区,磁盘大小不能超过2T。而GPT分区格式,突破了这些限制,它没有主分区、扩展分区、逻辑分区之分,在一块磁盘上最多可以分128个分区出来,支持大于2T的分区,最大卷可达18EB。 相信,随着存储级别的升级,将来的分区格式逐渐会淘汰MBR,而GPT成为主流。

parted 工具常用功能:

当在命令行输入parted后,进入parted命令的交互模式。输入help会显示帮助信息。下面就简单介绍一下常用的功能

1、check 简单检查文件系统。建议用其他命令检查文件系统,比如fsck

2、help 显示帮助信息

3、mklabel 创建分区表, 即是使用msdos(MBR)还是使用gpt,或者是其他方式分区表

4、 mkfs 创建文件系统。该命令不支持ext3 格式,因此建议不使用,最好是用parted分好区,然后退出parted交互模式,用其他命令进行分区,比如:mkfs.ext3

5、mkpart 创建新分区。

格式:mkpart PART-TYPE [FS-TYPE] START END

PART-TYPE 类型主要有primary(主分区), extended(扩展分区), logical(逻辑区). 扩展分区和逻辑分区只对msdos。

fs-type 文件系统类型,主要有fs32,NTFS,ext2,ext3等

start end 分区的起始和结束位置。

6、mkpartfs 建立分区及其文件系统。目前还不支持ext3文件系统,因此不建议使用该功能。最后是分好区后,退出parted,然后用其他命令建立文件系统。

7、print 输出分区信息。该功能有3个选项,

free 显示该盘的所有信息,并显示磁盘剩余空间

number 显示指定的分区的信息

all 显示所有磁盘信息

8、resize 调整指定的分区的大小。目前对ext3格式支持不是很好,所以不建议使用该功能。

9、rescue 恢复不小心删除的分区。如果不小心用parted的rm命令删除了一个分区,那么可以通过rescue功能进行恢复。恢复时需要给出分区的起始和结束的位置。然后parted就会在给定的范围内去寻找,并提示恢复分区。

10、rm 删除分区。命令格式 rm number 。如:rm 3 就是将编号为3的分区删除

11、select 选择设备。当输入parted命令后直接回车进入交互模式是,如果有多块硬盘,需要用select 选择要操作的硬盘。如:select /dev/sdb

12、set 设置标记。更改指定分区编号的标志。标志通常有如下几种:boot hidden raid lvm 等。

boot 为引导分区,hidden 为隐藏分区,raid 软raid,lvm 为逻辑分区。

如:set 3 boot on 设置分区号3 为启动分区

注:以上内容为parted常用的功能,由于该工具目前对ext3支持得不是很好,因此有些功能无法应用,比如move(移动分区)和resize等。

parted分区功能事例。

1、用命令模式 为/dev/sdb创建gpt类型文件分区表,并分500G分区。然后为该分区创建ext3文件系统。并将该分区挂载在/test文件夹下。

# parted /dev/sdb mklabel —创建分区表

# parted /dev/sdb mkpart ext3 0 500000 —创建500G分区/dev/sdb1

# mkfs.ext3 /dev/sdb1 —-将分区/dev/sdb1格式化成ext3格式文件系统

# mount /dev/sdb1 /test —将/dev/sdb1 挂载在/test下

如果让系统自动挂载/dev/sdb1 需手工编辑/etc/fstab文件。并在文件末尾添加如下内容:

/dev/sdb1 /test ext3 defaults 0 0

2、创建大小为4G的交换分区。由于已经创建了500G的/dev/sdb1 ,因此再创建的分区为/dev/sdb2

# parted /dev/sdb mkpart swap 500000 504000 —创建4G分区/dev/sdb2

# mkswap /dev/sdb2 —-将/dev/sdb2创建为交换分区

# swapon /dev/sdb2 —-激活/dev/sdb2,swapon其实相当于mount -a ,刷新分区表

如果让系统自动挂载/dev/sdb2这个交换分区,需手工编辑/etc/fstab文件。并在文件末尾添加如下内容:

/dev/sdb2 swap swap defaults 0 0

3、恢复被误删除的分区(也可以参考testdisk命令)。由于parted直接写磁盘,因此一旦不小心删除了某一分区,建议立即用rescue恢复。下面通过事例来理解恢复过程。

# parted /dev/sdb mkpart ext3 504000 514000 —-创建10G分区/dev/sdb3

# mkfs.ext3 /dev/sdb3 —将/dev/sdb3格式化成ext3文件系统。

# parted /dev/sdb rm 3 —-删除/dev/sdb3

# parted /dev/sdb rescue 504000 514000 —依照屏幕提示,输入yes即可恢复被误删除分区

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

parted分区


注意: fdisk -l无法识别gpt分区,所以不能用 fdisk -l来查看gpt分区

#建挂载目录
[root@localhost ~]# mkdir -p  /data


#开始建分区,新加硬盘是/dev/sdb
[root@localhost ~]# parted  /dev/sdb  
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel  gpt    #分区标签,随便写
(parted) print                                                            
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 1100GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart  primary  0 1TB      #主分区/扩展分区 ,从0开始,  分多少,直接写大小 ,这里是1TB                                      
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore             #忽略即可                                           
(parted) print                                                            
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 1100GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  1100GB  1100GB               primary

(parted) quit     #退出                                                        
Information: You may need to update /etc/fstab.


#查看当前分区情况
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 Jun 17 10:35 /dev/sda
brw-rw----. 1 root disk 8,  1 Jun 17 10:35 /dev/sda1
brw-rw----. 1 root disk 8,  2 Jun 17 10:35 /dev/sda2
brw-rw----. 1 root disk 8, 16 Jun 17 11:01 /dev/sdb
brw-rw----. 1 root disk 8, 17 Jun 17 11:01 /dev/sdb1
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   30G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   29G  0 part 
  ├─centos-root 253:0    0   26G  0 lvm  /
  └─centos-swap 253:1    0    3G  0 lvm  [SWAP]
sdb               8:16   0    1T  0 disk 
└─sdb1            8:17   0 1024G  0 part /data
sr0              11:0    1 1024M  0 rom 

#格式化分区
[root@localhost ~]# mkfs.xfs  /dev/sdb1 
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=67108862 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=268435447, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=131071, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

#写入分区挂载表
[root@localhost ~]# vi /etc/fstab 

#立刻生效
[root@localhost ~]# mount -a

#查看当前分区
[root@localhost ~]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        28G   11G   18G  37% /
devtmpfs                devtmpfs  2.1G     0  2.1G   0% /dev
tmpfs                   tmpfs     2.1G     0  2.1G   0% /dev/shm
tmpfs                   tmpfs     2.1G  9.3M  2.1G   1% /run
tmpfs                   tmpfs     2.1G     0  2.1G   0% /sys/fs/cgroup
/dev/sda1               xfs       1.1G  136M  928M  13% /boot
tmpfs                   tmpfs     415M     0  415M   0% /run/user/0
/dev/sdb1               xfs       1.1T   34M  1.1T   1% /data
 

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


partprobe命令

后面不需要加分区

partprobe

包含在parted软件包中,默认parted软件包已经带有

rpm -qa|grep parted

parted-2.1-25.el6.x86_64

http://liuyu.blog.51cto.com/183345/139960/

# partprobe

这个命令执行完毕之后不会输出任何返回信息,你可以使用mke2fs命令在新的分区上创建文件系统。

我用此命令解决 LVM fdisk 划分分区问题~~不需要硬盘umount


super block (Linux就这个范儿)

ExtN文件系统还有一个超级块区(super block),用于记录整个文件系统的整体信息,包括inode和data block的总量、使用量和剩余量

df读取的是每个分区的super block,du是搜索所有inode来计算局部数据


/etc/mtab #文件系统动态信息,记录当前挂载的文件系统

Linux就这个范儿 P118

# cat /etc/mtab

/dev/vda1 / ext3 rw,noatime,acl,user_xattr 0 0

proc /proc proc rw 0 0

sysfs /sys sysfs rw 0 0

devpts /dev/pts devpts rw,mode=0620,gid=5 0 0

/dev/vdb1 /mydata ext4 rw,noatime,nodiratime 0 0

none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

mount命令的信息从/etc/mtab 文件读取

# mount

/dev/vda1 on / type ext3 (rw,noatime,acl,user_xattr)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,mode=0620,gid=5)

/dev/vdb1 on /mydata type ext4 (rw,noatime,nodiratime)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

解决umount的时候文件系统被占用的两个命令 fuser 和 lsof

--http://www.aminglinux.com/bbs/forum.php?mod=viewthread&tid=7704&page=1&extra=#pid396833

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

#查看发现是pid为1757的mysql用户起的进程在占用该目录。
fuser -cu /data1/img
/data1/img: 1757c(mysql)

#确认mysql所起的进程可以kill 后,可以直接使用fuser 的k参数进行kill (也可以手动停掉1757进程再卸载)
fuser -ck /data1/img
/data1/img: 1757c


fuser参数
-c 包含 File的文件系统中关于任何打开的文件的报告。
-u 为进程号后圆括号中的本地进程提供登录名。
-k 将 SIGKILL 信号发送到每个本地进程。仅有 root 用户能终止另一用户的进程。
-f 仅对文件
-d 暗示使用了 -c 和 -x 标志。关于任何与文件系统(自父目录删除的)无链接的打开文件的报告。当与 -V 标志一起使用时,它也会报告被删除文件的节点号和大小。
-V 提供详细输出。
-x 与 -c 或 -f 连用,报告除标准 fuser 输出以外的可执行的和可载入的对象。

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


fdisk一定要先看看整个/dev/sda有多少空间

经验教训

整个/dev/sda有500G空间

fdisk没看到有/dev/sda4分区

其实这时候就可以fdisk /dev/sda ->n 创建新分区

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

创建好之后就有/dev/sda4了

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

#格式化500G空间用了6分钟时间

mke2fs -t ext4 /dev/sda4

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

操作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

30482432 inodes, 121901166 blocks

6095058 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=4294967296

3721 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

102400000

正在写入inode表: 完成

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information:

完成

This filesystem will be automatically checked every 34 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

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


centos6系列 挂载XFS文件系统

注意:要用 mkfs.xfs不要用mke2fs -t xfs !!

yum install -y xfsprogs kmod-xfs xfsdump xfsprogs-devel

mkfs.xfs -f /dev/sdb1

mount -t xfs /dev/sdb1 /test


添加新分区

http://www.cnblogs.com/TeyGao/p/5532999.html

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


resize2fs 命令

http://baike.baidu.com/link?url=8GcTUgrInYksBaJiuOTK0bQ2OspOAyykvsTgyyQk3yMtT8rY52lzOl0DWXxjrQXCZSF7WMmC5BGjvCEStjzU3K

resize2fs程序会重新定义ext2,ext3或者是ext4文件系统。能够用于扩大或者缩小一个在设备上未挂载的文件系统。如果这个文件系统是挂载的,它能够用于扩大挂载了的文件系统,假定内核支持在线重新定义大小。(从这个算起,linux的2.6内核支持使用ext3挂载文件系统的在线重定义大小。)

大小参数指定要求的文件系统的新大小。如果单位没有指定,大小参数的单位会成为文件系统的文件系统的文件块尺寸。可选择的,大小参数也会分别带有后缀为's','K','M'或者'G'的单位标识符为512字节(byte sectors),千字节(kilobytes),百万字节(megabytes)或者是十亿字节(gigabytes)。文件系统的大小也不能够大于分区的大小。如果大小参数没有被指定,会使用默认的分区大小。

resize2fs - ext2/ext3/ext4文件系统重定义大小工具。

resize2fs [ -fFpPM ] [ -d debug-flag

-d debug-flags(调试-标志)打开多样的resize2fs调试特性,如果他们已经被编译进入了库当中。调试-标志应该通过相加下列列表设计的特性的数字来计算:

2 - Debug block relocations(调试block再安置)

4 - Debug inode relocations(调试inode再安置)

8 - Debug moving the inode table(调试移动inodetable)

-f 强制开始文件系统重定义大小操作,推翻一些resize2fs平常的强制安全检查。

-F 开始之前排除文件系统设备的缓冲区的缓存。真正只对resize2fs的时间检验有用。

-M 减小文件系统到最小的大小。

-p 为了每一个resize2fs操作打印一个百分比完成条,因此用户可以保持注意程序正在运作的动态。

-P 打印最小的文件大小并退出。

-S RAID-stride(独立冗余磁盘阵列-步幅)

例子

umount /data   #卸载分区
e2fsck -f /dev/sda5
resize2fs -p /dev/sda5 45G    #只能写扩容后的容量
mount /dev/sda5  /data   
df -TH

在线扩容

使用 resize2fs或xfs_growfs 对挂载目录在线扩容

resize2fs 针对文件系统ext2 ext3 ext4

xfs_growfs 针对文件系统xfs

xfs文件系统的调整命令是xfs_growfs(只支持增大)

lvextend -L 120G /dev/mapper/centos-home #增大至120G

lvextend -L +20G /dev/mapper/centos-home #增加20G

xfs_growfs /dev/mapper/centos-home #执行调整

就是说:xfs文件系统只支持增大分区空间的情况,不支持减小的情况(切记!!)。

硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,这样的话这个逻辑分区上原来的数据就丢失了。如果有重要文件,那就歇菜

如下,很显然xfs文件系统不能执行分区减小的调整!

[root@localhost ~]# xfs_growfs /dev/mapper/centos-home
xfs_growfs: /dev/mapper/centos-home is not a mounted XFS filesystem
[root@localhost ~]# mount /dev/mapper/centos-home /home/
mount: /dev/mapper/centos-home:不能读超级块

f

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

[root@localhost ~]# xfs_growfs /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=41156608 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=164626432, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=80384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 164626432 to 188219392

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

f


http://chawan.blog.51cto.com/9179874/1840895

常见的文件系统

Linux文件系统: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap

swap: 交换分区

光盘:iso9660

Windows:fat32, ntfs

Unix: FFS, UFS, JFS2

网络文件系统:NFS, CIFS

集群文件系统:GFS2, OCFS2

分布式文件系统:ceph, moosefs, mogilefs, GlusterFS, Lustre

Linux根据其是否支持"journal"功能:

日志型文件系统: ext3, ext4, xfs, ...

非日志型文件系统: ext2, vfat

格式化

低级格式化:硬件制造商、分区之前划分磁道,形成簇 磁盘出厂前由厂家完成

高级格式化:分区之后对分区进行,创建文件系统

每种操作系统所设置的文件属性/权限不相同,为了存放这些所需的数据

我们常说的重装系统及格式化都是属于高级格式化层面的。本文所说的文件系统均为高级格式化后的产物。

Linux文件系统管理工具

blkid:块设备属性信息查看

e2label:管理ext系列文件系统的LABEL

tune2fs:重新设定ext系列文件系统可调整参数的值(不进行格式化)

-l:查看指定文件系统超级块信息;super block

-L 'LABEL':修改卷标

-m #:修预留给管理员的空间百分比

-j: 将ext2升级为ext3

-O: 文件系统属性启用或禁用

-o: 调整文件系统的默认挂载选项

-U UUID: 修改UUID号;

dumpe2fs -h:查看超级块信息等同于tune2fs -l

mkfs -t ext4 /dev/sdb4


传统方式扩容文件系统

http://www.cnblogs.com/MYSQLZOUQI/p/7707287.html

新空间增加到已有分区中(GPT分区格式)

直接用parted工具

新空间增加到已有分区中(MBR分区格式)

下面两种情况都可以选择使用自动扩容工具(devresize.py)进行扩容

1、原有的硬盘(数据盘)只有一个MBR主分区并制作了文件系统

2、原有的硬盘(数据盘)没有分区,直接在此硬盘上制作了文件系统

自动扩容工具适用于Linux操作系统,用于将扩容时新扩的云硬盘存储空间添加到已存在的文件系统中,扩容能够成功必须满足下面3个条件:

1、文件系统是ext2/ext3/ext4,并且只有一个主分区没有其他主分区和扩展分区

2、当前文件系统不能有错误

3、扩容后的磁盘大小不超过2TB,需要使用parted分区/GPT分区格式


mke2fs配置文件

mke2fs: 这个指令比其他的要强大,因此使用这个指令创建分区的文件系统

配置文件:/etc/mke2fs.conf,这个文件是该指令的配置文件,配置了一些通过该指令创建的文件系统的默认属性

/etc/mke2fs.conf里有mke2fs指令的默认属性,块大小,inode比率

[root@zhenzhen ~]# cat /etc/mke2fs.conf

[defaults]

base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr

blocksize = 4096

inode_size = 256

inode_ratio = 16384


Structure needs cleaning(结构需要清理)的解决方法

1、先解除挂载umount 目录

umount /data

2、修复分区

xfs_repair /dev/md0

xfs_repair -L /dev/md0 #暴力修复,清空文件系统日志,慎用

3、重新启动操作系统

reboot