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 ,nr_inodes, LVM,传统方式扩容文件系统 第七节课
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 分区工具
http://www.apelearn.com/bbs/thread-7243-1-3.html
上半节课
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的使用
df -TH --total
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 501M .1k 501M % /dev
tmpfs tmpfs 103M 1.1M 102M % /run
/dev/sda1 ext4 30G .3G 27G % /
none tmpfs .1k .1k % /sys/fs/cgroup
none tmpfs 5.3M 5.3M % /run/lock
none tmpfs 512M 512M % /run/shm
none tmpfs 105M 105M % /run/user
/dev/sda3 ext4 45G 51M 42G % /data
/dev/sda2 ext4 283M 40M 224M % /boot
total - 75G .4G 70G % -
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 /
磁盘的分区和格式化
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
sda1、sda2、sda3 分区
下半节课
查看系统当前支持的文件系统
# 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 、4096、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, bytes
heads, sectors/track, cylinders
Units = cylinders of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / 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 .3G 49G % /
/dev/vdb ext4 11G 24M .9G % /data fdisk -l
Disk /dev/vdb: 10.7 GB, bytes
heads, sectors/track, cylinders
Units = cylinders of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk identifier: 0x00000000
怎麽知道一个块设备是否已经格式化安装了文件系统,如果格式化过,他的标签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 : ID=0x83, active, starthead , startsector , 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) (4K pages) size pages Label lswap
file -s /dev/vdc1
/dev/vdc1: Linux/i386 swap file (new style) (4K pages) size 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= 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只能停机
问题二
扩容步骤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 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;'>
2、在终端里面 fdisk -l 就能看到新添加的磁盘,如果看不到可以使用这个方法
地址:不用重启在CentOS / RHEL 虚拟机中添加一块新硬盘
- 确定主机总线号,磁盘是有总线连接着的
- [root@steven ~]# ls /sys/class/scsi_host/
- host0 host1 host2
- 重新扫描SCSI总线来添加设备,因为添加的是SCSI磁盘,所以扫描的是SCSI总线
- [root@steven ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
- [root@steven ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
- [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;'>
3、用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;'>
4、再在/dev/sdb 上分逻辑分区
- [root@steven ~]# fdisk /dev/sdb
复制代码
n
l
+200M
p 打印出来看一下分区号
- Device Boot Start End Blocks Id System
- /dev/sdb2 1 65 522081 5 Extended
- /dev/sdb5 1 26 208782 83 Linux
复制代码
t
5
8e
w
5、重新读取分区partprobe
partprobe
6、建pv
pvcreate /dev/sdb5
- [root@steven ~]# pvcreate /dev/sdb5
- Physical volume "/dev/sdb5" successfully created
复制代码
7、查看当前系统中的vg情况
vgs
- [root@steven ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- VolGroup 1 2 0 wz--n- 19.51g 0
复制代码
8、扩展vg 增加了200M的vg
vgextend VolGroup /dev/sdb5
- [root@steven ~]# vgextend VolGroup /dev/sdb5
- . 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;'>
9、扩展lv
lvextend -L +200M /dev/VolGroup/lv_root
设备文件名规律 /dev/VG名/LV名
- [root@steven dev]# lvextend -L +200M /dev/VolGroup/lv_root
- Size of logical volume VolGroup/lv_root changed from 17.54 GiB (4490 extents) to 17.73 GiB (4540 extents).
- Logical volume lv_root successfully resized
复制代码
10、同步
resize2fs -p /dev/VolGroup/lv_root
- [root@steven dev]# resize2fs /dev/VolGroup/lv_root
- resize2fs 1.41.12 (17-May-2010)
- Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
- old desc_blocks = 2, new_desc_blocks = 2
- Performing an on-line resize of /dev/VolGroup/lv_root to 4648960 (4k) blocks.
- 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;'>
扩容时的两个谣言
1、将新的磁盘分区加入到卷组vg之前,需要对分区进行格式化为lv所用的文件系统,通过实验证明是不需要格式化的,直接加入到卷组vg即可
2、对lv进行扩容,需要先umount才能扩容,通过实验证明是不需要umount的,也就是说在Apache服务或者其他服务正常运行的情况下就可以扩容
====================================================================
===============================================================
缩容(扩容可以在线扩容,但是缩容不能是在线的)
因为刚才扩容是在根分区扩容的,那么缩容涉及到umount,那么就不在根分区上面做了,我们另外新建一个分区
1、建立文件夹
mkdir /aming
- [root@steven ~]# mkdir /aming
复制代码
2、我们刚才还有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
3、创建物理卷
- Device Boot Start End Blocks Id System
- /dev/sdb1 66 98 265072+ 8e Linux LVM
- /dev/sdb2 1 65 522081 5 Extended
- /dev/sdb3 99 127 232942+ 8e Linux LVM
- /dev/sdb5 1 26 208782 8e Linux LVM
复制代码
partprobe
pvcreate /dev/sdb1 /dev/sdb3
- [root@steven ~]# pvcreate /dev/sdb1
- Physical volume "/dev/sdb1" successfully created
- [root@steven ~]# pvcreate /dev/sdb3
- Physical volume "/dev/sdb3" successfully created
复制代码
4、查看物理卷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;'>
5、创建卷组vgdata
vgcreate vgdata /dev/sdb1
- [root@steven ~]# vgcreate vgdata /dev/sdb1
- 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;'>
6、创建逻辑卷
lvcreate -L +240M -n lvdata1 vgdata
- [root@steven ~]# lvcreate -L +240M -n lvdata1 vgdata
- 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;'>
7、格式化逻辑卷mkfs.ext4 /dev/vgdata/lvdata1
- [root@steven ~]# mkfs.ext4 /dev/vgdata/lvdata1
- mke2fs 1.41.12 (17-May-2010)
- 文件系统标签=
- 操作系统:Linux
- 块大小=1024 (log=0)
- 分块大小=1024 (log=0)
- Stride=0 blocks, Stripe width=0 blocks
- 61440 inodes, 245760 blocks
- 12288 blocks (5.00%) reserved for the super user
- 第一个数据块=1
- Maximum filesystem blocks=67371008
- 30 block groups
- 8192 blocks per group, 8192 fragments per group
- 2048 inodes per group
- Superblock backups stored on blocks:
- 8193, 24577, 40961, 57345, 73729, 204801, 221185
- 正在写入inode表: 完成
- Creating journal (4096 blocks): 完成
- Writing superblocks and filesystem accounting information: 完成
- This filesystem will be automatically checked every 24 mounts or
- 180 days, whichever comes first. Use tune2fs -c or -i to override.
复制代码
8、挂载 如果要永久挂载 就要写在/etc/fstab 文件里面
mount /dev/vgdata/lvdata1 /aming
- [root@steven ~]# cd /aming
- [root@steven aming]# ls
- lost+found
复制代码
fdisk -l
- Disk /dev/mapper/vgdata-lvdata1: 251 MB, 251658240 bytes
- 255 heads, 63 sectors/track, 30 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk identifier: 0x00000000
复制代码
9、扩展vg ,将sdb3加进来
vgextend vgdata /dev/sdb3
- [root@steven aming]# vgextend vgdata /dev/sdb3
- Volume group "vgdata" successfully extended
复制代码
10、扩展lv
lvextend -L +230M /dev/vgdata/lvdata1
- [root@steven aming]# lvextend -L +230M /dev/vgdata/lvdata1
- Rounding size to boundary between physical extents: 232.00 MiB
- Size of logical volume vgdata/lvdata1 changed from 240.00 MiB (60 extents) to 472.00 MiB (118 extents).
- Logical volume lvdata1 successfully resized
复制代码
11、同步
resize2fs -p /dev/vgdata/lvdata1
- [root@steven aming]# resize2fs /dev/vgdata/lvdata1
- resize2fs 1.41.12 (17-May-2010)
- Filesystem at /dev/vgdata/lvdata1 is mounted on /aming; on-line resizing required
- old desc_blocks = 1, new_desc_blocks = 2
- Performing an on-line resize of /dev/vgdata/lvdata1 to 483328 (1k) blocks.
- The filesystem on /dev/vgdata/lvdata1 is now 483328 blocks long.
复制代码
查看空间占用df -h<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;'> 缩容12、减少逻辑卷大小先cd回去root目录 cdumount -l /aming 强制卸载13、e2fsck 检测剩余空间e2fsck -yf /dev/vgdata/lvdata1-yf:不询问
- [root@steven ~]# e2fsck -yf /dev/vgdata/lvdata1
- e2fsck 1.41.12 (17-May-2010)
- 第一步: 检查inode,块,和大小
- 第二步: 检查目录结构
- 第3步: 检查目录连接性
- Pass 4: Checking reference counts
- 第5步: 检查簇概要信息
- /dev/vgdata/lvdata1: 13/120832 files (0.0% non-contiguous), 21656/483328 blocks
复制代码
14、resize2fs 同步文件系统 resize2fs -f /dev/vgdata/lvdata1
- [root@steven ~]# resize2fs -f /dev/vgdata/lvdata1
- resize2fs 1.41.12 (17-May-2010)
- The filesystem is already 483328 blocks long. Nothing to do!
复制代码
15、使用lvreduce命令将逻辑卷减少注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。lvreduce -L -230M /dev/vgdata/lvdata1
- [root@steven ~]# lvreduce -L -230M /dev/vgdata/lvdata1
- Rounding size to boundary between physical extents: 228.00 MiB
- WARNING: Reducing active logical volume to 244.00 MiB
- THIS MAY DESTROY YOUR DATA (filesystem etc.)
- Do you really want to reduce lvdata1? [y/n]: y
- Size of logical volume vgdata/lvdata1 changed from 472.00 MiB (118 extents) to 244.00 MiB (61 extents).
- 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
- [root@steven ~]# lvremove /dev/vgdata/lvdata1
- Do you really want to remove active logical volume lvdata1? [y/n]: y
- Logical volume "lvdata1" successfully removed
复制代码
3、vgremove 删除卷组vgremove vgdata
- [root@steven ~]# vgremove vgdata
- Volume group "vgdata" successfully removed
复制代码
4、pvremove 将物理卷转化成普通分区pvremove /dev/sdb1 /dev/sdb3
- [root@steven ~]# pvremove /dev/sdb1 /dev/sdb3
- Labels on physical volume "/dev/sdb1" successfully wiped
- Labels on physical volume "/dev/sdb3" successfully wiped
复制代码
5、将sdb1和sdb3 转换回 83 Linux分区类型fdisk /dev/sdbl
- Command (m for help): l
- 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
- 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
- 2 XENIX root 3c PartitionMagic 83 Linux
复制代码
t1t3w6、查看分区类型partprobefdisk -l
- Disk /dev/sdb: 1073 MB, 1073741824 bytes
- 255 heads, 63 sectors/track, 130 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk identifier: 0xf27bd8ef
- Device Boot Start End Blocks Id System
- /dev/sdb1 66 98 265072+ 83 Linux
- /dev/sdb2 1 65 522081 5 Extended
- /dev/sdb3 99 127 232942+ 83 Linux
- /dev/sdb5 1 26 208782 8e Linux LVM
复制代码
7、格式化 sdb1和sdb3mkfs -t ext4 /dev/sdb1 mkfs -t ext4 /dev/sdb3
- [root@steven aming]# mkfs -t ext4 /dev/sdb3
- mke2fs 1.41.12 (17-May-2010)
- 文件系统标签=
- 操作系统:Linux
- 块大小=1024 (log=0)
- 分块大小=1024 (log=0)
- Stride=0 blocks, Stripe width=0 blocks
- 58464 inodes, 232940 blocks
- 11647 blocks (5.00%) reserved for the super user
- 第一个数据块=1
- Maximum filesystem blocks=67371008
- 29 block groups
- 8192 blocks per group, 8192 fragments per group
- 2016 inodes per group
- Superblock backups stored on blocks:
- 8193, 24577, 40961, 57345, 73729, 204801, 221185
- 正在写入inode表: 完成
- Creating journal (4096 blocks): 完成
- Writing superblocks and filesystem accounting information: 完成
- This filesystem will be automatically checked every 38 mounts or
- 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、查看挂载情况
- [root@steven testsdb3]# mount
- /dev/mapper/VolGroup-lv_root on / type ext4 (rw)
- proc on /proc type proc (rw)
- sysfs on /sys type sysfs (rw)
- devpts on /dev/pts type devpts (rw,gid=5,mode=620)
- tmpfs on /dev/shm type tmpfs (rw)
- /dev/sda1 on /boot type ext4 (rw)
- none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
- sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
- /dev/sdb1 on /testsdb1 type ext4 (rw)
- /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
- Device Boot Start End Blocks Id System
- /dev/sdb2 1 65 522081 5 Extended
- /dev/sdb5 1 26 208782 8e Linux LVM
d
LVM的构成原理
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
如果让系统自动挂载/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即可恢复被误删除分区
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
fdisk一定要先看看整个/dev/sda有多少空间
经验教训
整个/dev/sda有500G空间
fdisk没看到有/dev/sda4分区
其实这时候就可以fdisk /dev/sda ->n 创建新分区
创建好之后就有/dev/sda4了
#格式化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.
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
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
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
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
centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,nr_inodes, LVM,传统方式扩容文件系统 第七节课的更多相关文章
- Linux下磁盘管理命令df与du
Linux下磁盘管理命令df与du 对磁盘进行查看和控制的两个linux命令,df和du. 一.du命令 首先看一下du的help说明: [root@misdwh opt]# du --help ...
- linux下磁盘分区详解 图文(fdisk;mkfs)
linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a-d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a-z)),硬盘主分区最多为4个,不 ...
- linux下磁盘管理(du、df)命令使用
DF :disk free 磁盘可用量 DU: disk usage 磁盘使用 df:列出文件系统的整体磁盘使用量: df参数: -a:列出所有的文件系统,包括系统特有的/proc等文件系统 -k:以 ...
- lesson - 6 Linux下磁盘管理
1. 查看磁盘或者目录的容量df 查看磁盘各分区使用情况 不加参数以k为单位 df -i inode数,df -h 以G或者T或者M df -m 以M单位显示 du 查看目录或者文 ...
- Linux下磁盘管理
设置密码mkpasswdmkpasswd -s 0mkpasswd -s 0 -1 15 规定密码的长度 1. 查看磁盘或者目录的容量df 查看磁盘各分区使用情况 不加参数以k为单位 df -i in ...
- Linux命令——磁盘管理
Linux命令--磁盘管理 命令df 作用:查看已挂载磁盘的总容量.使用容量.剩余容量等 参数:-i,查看inodes的使用状况 参数:-h,使用合适的单位显示(推荐) 命令du 作用:查看某个目录或 ...
- Centos下磁盘管理的常用命令记录(如查找大文件)
Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...
- LINUX的磁盘管理du命令详解
LINUX的磁盘管理du命令详解 du(disk usage)命令可以计算文件或目录所占的磁盘空间.没有指定任何选项时, 它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作 ...
- linux 系统磁盘管理体系
目录 linux 系统磁盘管理体系 一.磁盘的基本概念 二.磁盘的内部结构 三.磁盘的外部结构 四.磁盘的接口及类型 五.fdisk磁盘分区实践 六.gdisk 分区 七.parted 高级分区工具. ...
随机推荐
- c#.net常用函数和方法集
1.DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.D ...
- Makefile--伪目标 (三)
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 一般情况下,Makefile都会有一个clean目标,用于清除编译过程中产生的二进制文件.我们在 ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)
接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...
- swift学习笔记之控制流
控制流: 1.if语句 let count = { print("yes") }else{ print("no") } 2.switch语句 (1)Swift中 ...
- GIS-001-gdal软件下载地址
http://www.gisinternals.com/ http://download.gisinternals.com/sdk/downloads/release-1600-x64-gdal-1- ...
- 动易CMS漏洞收集
动易SiteWeaver6.8短消息0day跨站漏洞 user用户登陆,默认账号密码 admin/admin888 短消息代码模式下编辑,预览 <img src="../Skin/bl ...
- NPOI抓取WPS表格保存的EXCEL文件
其实是可以抓取的,唯一不同就是Sheet的位置前进了一位. var sheet1 = (HSSFSheet)hssfworkbook.GetSheetAt(1); 来自为知笔记(Wiz ...
- nginx mac 下启动 停止 重启,查看安装位置
Nginx的启动.停止与重启 启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/ ...
- echarts实现柱状图分页展示
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 当新增页面和编辑页面使用同一jsp时
<c:if test="${type eq '1'}"><title>新增页面</title></c:if> <c:if te ...