五天学redhat系列之—文件系统管理推荐

套用文档的一段话开头:文件系统是牵涉到文件与目录在计算机中的存储。一个文件系统可以有不同的格式–称作文件系统类型。这些格式决定着记录到文件以及目录内的信息。有些文件系统类型会记录多余的信息,而有一些则更注重让文件操作更快。这一个部分我们将讨论ext3/4/2,swap,raid,以及lvm的文件系统类型。还有一些类似parted的分区工具介绍,和用ACL来自定义文件权限。 还是把链接贴一下:Storage Administration Guide,Logical Volume Manager Administration 当然翻译的不是很好,补充几点,这里将做几个实验把,fdisk这个工具的使用,raid,lvm等的用法,内容比较多,希望大家能耐心的看完! 来先看一下实验环境,一台RHEL6.2的虚拟机子,添加了四块1GB的ide硬盘,有图有真相。 我们按照上头的顺序从ext3开始讲吧。ext3 日志文件系统1用fdisk 进行分区 2格式化文件系统3打标签4创建挂载点5加入开机启动/etc/fstab 看一下环境:/dev/下装的都是设备文件[root@kikupotter3 dev]# ll sd*brw-rw—-. 1 root disk 8,0 11月1 03:49 sdabrw-rw—-. 1 root disk 8, 16 11月1 03:49 sdbbrw-rw—-. 1 root disk 8, 32 11月1 03:49 sdcbrw-rw—-. 1 root disk 8, 48 11月1 03:49 sdd四块IDE硬盘都进去了,嘿嘿。现在有搞头了。 我们先就是sda这块硬盘。用fdisk这个命令来分区,好好介绍一下用法。[root@kikupotter3 ~]# fdisk /dev/sdaDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x394792ea.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won’t be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to switch off the mode (command ‘c’) and change display units to sectors (command ‘u’).Command (m for help): //他说输如m来获取帮助 然后我输入mCommand (m for help): mCommand action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition //删除一个分区 l list known partition types m print this menu //打开帮助 n add a new partition //建一个新分区 o create a new empty DOS partition table p print the partition table //打印当前的分区表 q quit without saving changes //未保存退出 s create a new empty Sun disklabel t change a partition’s system id //更改分区类型 u change display/entry units v verify the partition table w write table to disk and exit //保存推出,区别q x extra functionality (experts only) 标记上红色的是比较常用的,说白了没用到的就不要去了解,了解了也没啥用,没有去操练就会忘记了的。 下面的步骤输出会很长,关键的部分我会打上红色注意看哦。Command (m for help): pDisk /dev/sda: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd540b437//这个部分就是这个硬盘的参数的,算是很详细。 Device BootStart EndBlocks IdSystemCommand (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 1First cylinder (1-130, default 1): 1Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +300MCommand (m for help): pDisk /dev/sda: 1073 MB, 1073741824 bytes255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd540b437 Device BootStart EndBlocks IdSystem/dev/sda1 139313236 83LinuxCommand (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 2First cylinder (40-130, default 40): Using default value 40Last cylinder, +cylinders or +size{K,M,G} (40-130, default 130): +300MCommand (m for help): pDisk /dev/sda: 1073 MB, 1073741824 bytes255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd540b437 Device BootStart EndBlocks IdSystem/dev/sda1 139313236 83Linux/dev/sda24078313267+83LinuxCommand (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 3First cylinder (79-130, default 79): Using default value 79Last cylinder, +cylinders or +size{K,M,G} (79-130, default 130): +300MCommand (m for help): pDisk /dev/sda: 1073 MB, 1073741824 bytes255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd540b437 Device BootStart EndBlocks IdSystem/dev/sda1 139313236 83Linux/dev/sda24078313267+83Linux/dev/sda379 117313267+83LinuxCommand (m for help): nCommand action e extended p primary partition (1-4)pSelected partition 4First cylinder (118-130, default 118): Using default value 118Last cylinder, +cylinders or +size{K,M,G} (118-130, default 130): Using default value 130Command (m for help): pDisk /dev/sda: 1073 MB, 1073741824 bytes255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd540b437 Device BootStart EndBlocks IdSystem/dev/sda1 139313236 83Linux/dev/sda24078313267+83Linux/dev/sda379 117313267+83Linux/dev/sda4 118 130104422+83LinuxCommand (m for help): 这样就创建好分区了,如何这时候想保存此分区结果的话,输入wCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks. [root@kikupotter3 ~]# ls /dev/sda*/dev/sda/dev/sda1/dev/sda2/dev/sda3/dev/sda4 保存后我们扎dev下面就可以看到四个分区了。如果上面不相保存就直接按q就可以了。 删除分区也很简单Command (m for help): d //删除Partition number (1-4): 4 //删的分区Command (m for help): p //打印Disk /dev/sda: 1073 MB, 1073741824 bytes255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd540b437 Device BootStart EndBlocks IdSystem/dev/sda1 139313236 83Linux/dev/sda24078313267+83Linux/dev/sda379 117313267+83Linux 保存退出后,就剩下三个分区了。[root@kikupotter3 ~]# ls /dev/sda*/dev/sda/dev/sda1/dev/sda2/dev/sda3[root@kikupotter3 ~]# 那fdisk命令就到这里了,思路明白了?学命令不一定要一口气记他个几十个,会忘的亲,现在还有好多命令我记不住的,还要百度google一下,而且是直接的关 键词。所以关键还是在那个思路!! 分区完了,第二步就是格式化文件系统,红色部分字体重点看一下哦![root@kikupotter3 ~]# mkfs.ext3 /dev/sda1mke2fs 1.41.12 (17-May-2010)文件系统标签=操作系统:Linux块大小=1024 (log=0)分块大小=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks78312 inodes, 313236 blocks15661 blocks (5.00%) reserved for the super user第一个数据块=1Maximum filesystem blocks=6763315239 block groups8192 blocks per group, 8192 fragments per group2008 inodes per groupSuperblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185正在写入inode表: 完成 Creating journal (8192 blocks): 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 25 mounts or180 days, whichever comes first.Use tune2fs -c or -i to override. ext3很标准的完成了一个mkfs的过程,内节点的建立,日志的建立,还有超级块。最后一个提示是问你要不要做一下 tune2fs -c or -i,不然系统每经过25次mount or 过180天会自动check。 那么现在可以来打一下标签:先来看一下man文档,突然短路了想不起来NAME e2label – Change the label on an ext2/ext3/ext4 filesystemSYNOPSIS e2label device [ new-label ]DESCRIPTION e2labelwill display or change the filesystem label on the ext2, ext3,or ext4 filesystem located on device. If the optional argument new-label is not present, e2label willsimply display the current filesystem label. Iftheoptionalargument new-label is present, then e2label will set . the filesystem label to be new-label. Ext2 filesystem labels can be at most16characterslong; if new-label is longer than 16 characters, e2label will truncate it and print a warning message. 很简洁的帮助文档,下面给/dev/sda1打标签[root@kikupotter3 ~]# e2label /dev/sda1 kiku 用下面命令来看label的情况。blkid( command-line utility to locate/print block device attributes)其实blkid是很强大的能够打印出本地块设备的属性,默认情况下可以打出所有,这里只是用到一下部分的内容,/dev/disk/下存的信息就是blkid用的 。[root@kikupotter3 ~]# blkid -L kiku/dev/sda1 或者findfs:(findfs – Find a filesystem by label or UUID)[root@kikupotter3 ~]# findfs LABEL=kiku/dev/sda1 然后创建一个目录用于挂载[root@kikupotter3 ~]# mkdir /mpoint 最后写入开机启动[root@kikupotter3 etc]# blkid /dev/sda1/dev/sda1: LABEL=”kiku” UUID=”b47853df-11b0-407e-aa2a-762f5b4fb36e” SEC_TYPE=”ext2″ TYPE=”ext3″ 编辑/etc/fstab 这个文件的写法很简单 终端运行命令:man 5 fstab 一看就会LABEL=kiku /mpointext3default 0 0 测试是否成功,这里就体现了一个label的高级用法咯。估计用的不多,大多数情况都是用uuid,或者是/dev/sdaX这样来写。[root@kikupotter3 etc]# mount -avmount: UUID=dcba6422-90c2-4df0-b1b4-7dbf77f7610e already mounted on /boot…….mount: LABEL=kiku already mounted on /mpointnothing was mounted swap 这个需要解释一下,分区的时候为什么至少要分一个/跟swap,因为Linux的文件系统结构是倒树型的的,而/就是这个树的顶端。所以的东西都在/的下面,所以单独分/不会落下东西的,但是/下面没有swap,它是自己独立出来的,作为虚拟内存的概念,当我们的物理内存不够用的时候,就会调用这些swap的空间。所以swap是在本地硬盘的空间,而且硬盘的读写比内存慢得多得多,所以不是swap分得越多,用得越多越好,不是这样的。一般情况下 内存2Gswap 2-3G内存4Gswap3-5G内存8Gswap4-6G内存16Gswap 6-8G内存32-64G不超过16G云芳你怎么看? 还有更直接的方法就是RAM的两倍。大牛你怎么看? 那有个建议是这样说,swap用逻辑卷来做,就可以避免上面的分多少的问题了,不过了我把swap卸载下来,扩容一下再swapon上去。简单省事。 下面先操作一个简单的制作一个swap文件让系统用创建一个文件[root@kikupotter3 ~]# dd if=/dev/zero of=/swapfile bs=1024 count=65536记录了65536+0 的读入记录了65536+0 的写出67108864字节(67 MB)已复制,0.254279 秒,264 MB/秒 做成swap,格式化[root@kikupotter3 ~]# mkswap -f /swapfile Setting up swapspace version 1, size = 65532 KiBno label, UUID=edf26f59-791d-4120-aa7c-9bc269577b86 然后开始启用并且加入开机启动[root@kikupotter3 ~]# swapon /swapfilevim /etc/fstab //添加/swapfile swap swap defaults 0 0 等下次开启重启的时候,我们到/proc/swap就能看到它了。或者mount -a [root@kikupotter3 etc]# cat /proc/swaps FilenameTypeSizeUsedPriority/dev/dm-1 partition20643760-1/swapfile file655280-2 看到了么 类型还是文件呀,嘿嘿。上面一个是分区,那至少来说支持分区分文件的类型。 然后再做个裸机卷的,再伸缩一下,调整大小。这个可以放在lvm那里做。 下面来raid,磁盘冗余阵列我们先做实验再解释这个东西。 先到各自对应版本的驱动下面看看有没有对应raid的.ko文件,这里的话默认就支持下面几种。[root@kikupotter3 md]# pwd/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/md[root@kikupotter3 md]# ls raid*raid0.koraid10.koraid1.koraid456.ko 分区先准备一下,还是有fdisk命令,那这一次是把4个ide硬盘都分区了,而且都只分成一个主分区。唯一跟前面有区别的就是我该了一个分区类型Command (m for help): tSelected partition 1Hex code (type L to list codes): fdChanged system type of partition 1 to fd (Linux raid autodetect) 改成raid支持的类型。这个是前期必须的工作哦! Device BootStart EndBlocks IdSystem/dev/sda1 1 130 1044193+fdLinux raid autodetect Device BootStart EndBlocks IdSystem/dev/sdb1 1 130 1044193+fdLinux raid autodetect Device BootStart EndBlocks IdSystem/dev/sdc1 1 130 1044193+fdL Device BootStart EndBlocks IdSystem/dev/sdd1 1 130 1044193+fdLinux raid autodetectinux raid autodetect 查看/proc/mdstat[root@kikupotter3 ~]# cat /proc/mdstat Personalities : unused devices: none 现在下面还没有,那么我们另位开一个终端[root@kikupotter3 ~]# watch -n0.5 “cat /proc/mdstat”Every 0.5s: cat /proc/mdstat Thu Nov 1 06:38:07 2012Personalities :unused devices: none /实时的看,每隔0.5s看一次。 用另位一个终端进行操作[root@kikupotter3 ~]# mdadm -C /dev/md0 -l 1 -n /dev/sda1 /dev/sdb1 -x 1 /dev/sdc1 mdadm: invalid number of raid devices: /dev/sda1[root@kikupotter3 ~]# mdadm -C /dev/md0 -l 1 -n 2 /dev/sda1 /dev/sdb1 -x 1 /dev/sdc1 mdadm: /dev/sda1 appears to contain an ext2fs file systemsize=313236Kmtime=Thu Nov1 05:30:54 2012mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device.If you plan tostore ‘/boot’ on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use–metadata=0.90Continue creating array? Continue creating array? (y/n) ymdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md0 started. 有图有真相: 还有一张成功的图: 这个是RAID1. 那么在/dev/下面就有一个md0刚刚生成的。[root@kikupotter3 ~]# ll /dev/md0brw-rw—-. 1 root disk 9, 0 11月1 06:42 /dev/md0 那么上面的动作只是把sda1 sdb1 sdc1 做成一个整体的md0了而已,还未格式化 文件系统[root@kikupotter3 ~]# mkfs.ext3 /dev/md0 好了可以挂载使用了[root@kikupotter3 ~]# mount /dev/md0 /mnt[root@kikupotter3 ~]# blkid /dev/md0/dev/md0: UUID=”dc1a7b6f-17c6-4629-9417-c6e411df8d29″ TYPE=”ext3” [root@kikupotter3 ~]# df -h 文件系统 容量 已用 可用 已用%% 挂载点/dev/mapper/VolGroup-lv_root 5.5G 1.3G 4.0G 24% /tmpfs 499M 0 499M 0% /dev/shm/dev/vda1 485M 31M 429M 7% /boot/dev/md0 1004M 18M 936M 2% /mnt 下面一步最关键了,我们来看看什么加冗余,什么是阵列,最直观的看图。还是打开监控端[root@kikupotter3 ~]# watch -n0.5 “cat /proc/mdstat”cat\/proc/mdstat 运行命令[root@kikupotter3 ~]# mdadm -f /dev/md0 /dev/sda1 然后你看:观察这张图跟上面第一张图的区别。 能发现几点,sda1由于某种原因坏点以后,sdc1顶了上去,而且未造成数据的丢失。那必须有几个的小磁盘组成一个这样的md0设备,而且必须要有空余的即冗余以保证事故后的恢复。 那raid有好几种不同的级别,不同的级别方式是不一样的。levels 0, 1, 4, 5, 6, 10, and linear,共7种形式。 那raid 到底有什么样的功能呢? 1 .提高硬盘的读写效率,通重来说,几个磁盘所组成的阵列,数据是分散在上面的,读写的时候,都是一起工作,那样的效率比当个大容量磁盘要快好多。 2.数据不容易丢失,因为这个是raid最重要的功能,单点故障不会导致整个数据丢失。但是如果都坏了的话,那就很难说了。 我们这里所使用的都是软件形式的raid,那么实现中更多的是软硬件结合,或者是纯硬件的设备。 剩下的部分要留给大牛来给我们说了,小弟的学识很浅薄只能到这里了,没有实际的生产经验。 还剩下最后一个部分 lvm,我之前就有写过一篇写的还可以,条例还比较强的说。 把原文整理重发吧。实在困了,刚刚坐着睡着了,真心是一晚没睡。。剩下的一些,下次补上。 逻辑卷我原本听来就是跟wins下的卷弄成一样咯,大家都是卷嘛。wins下新建一个分区就是添加一个卷,还可以设置卷名等等。逻辑卷也有,添加卷跟卷名。怎么办? 当然有办法:其实:wins下面的卷只单纯分区,格式化后就能用了,就是一次分区,或者我们把它形象的说成一级分区;那逻辑卷是不是有好“几级分区”,是的,把磁盘做成逻辑卷一共做了三次哦!所以我们形象得说逻辑卷是三级分区。 好了,知道逻辑卷之后再来使用一下lvm这个工具,lvm(logical volume manager)逻辑卷管理工具。对逻辑卷进行四种管理动作allocating disks 分配磁盘striping 条带化mirroring 镜像resizing logical volumes. 自由定义逻辑卷大小。 当然这四个动作完全可以不用GUI的界面做,强烈推荐命令行操作!简单,容易记。逻辑卷的制作步骤:(声明:本图片来源于redhat 文档网站) pv(物理卷8e)———- vg (虚拟硬盘)———– lv(逻辑卷)pv:我们可以把一个磁盘分成多个独立的物理卷,标记为8e;vg:把多个独立的物理卷放到一个卷组里面管理,把物理卷揉成了一个整体;lv:再把卷组这个整体进行以指定区单位的大小进行分配。最终形成逻辑卷 注意:/boot不能做在逻辑卷上的,因为grub不认lv,谁叫它搞得那么复杂呀。所以做系统的时候如果采用逻辑卷的方案要把/boot单独分出来。逻辑卷的特点 伸缩自如,特别是在主分区做成逻辑分区的时候,要是/(根)不够的情况下就可以增加容量咯,哪个独立分区的很少用但有占了挺大的空间那就缩小一些。特别注意:增大逻辑卷的量不能超过,物理卷的实际大小;缩小逻辑卷后的大小不能小于所在操作的逻辑卷真实文件量的大小,比如2G的/home,我只用了500M那么你一定不能缩成比500M小,否则你懂的,建议不原来的大一些,看需求吧,缩成600M就好了。下面就把剩余的56M在分给part_one!实验环境:KVM+RHEL6.0 添加一个磁盘分区如下。8个等大的分区。实验先用/dev/sda5 ,/dev/sda6Device BootStart EndBlocks IdSystem/dev/sda1 1 18001 83Linux/dev/sda2 2 522 4184932+ 5Extended/dev/sda5 266522081 8eLinux LVM/dev/sda667 131522081 8eLinux LVM/dev/sda7 132 196522081 83Linux/dev/sda8 197 261522081 83Linux/dev/sda9 262 326522081 83Linux/dev/sda10327 391522081 83Linux/dev/sda11392 456522081 83Linux/dev/sda12457 521522081 83Linux 现在来看看做个逻辑卷需要那些命令。制作逻辑卷的命令规则: pv+动作 vg+动作 lv +动作 第一步:制作物理卷pv(物理卷)+动作pvcreate //创建物理卷[root@localhost ~]# pvcreate /dev/sda5Physical volume “/dev/sda5″ successfully createpvs //查看物理卷[root@localhost ~]# pvsPV VG FmtAttr PSize PFree/dev/sda5 lvm2 a- 509.84m 509.84mpvscan //扫描系统上的物理卷[root@localhost ~]# pvscanPV /dev/sda5lvm2 [509.84 MiB]Total: 1 [509.84 MiB] / in use: 0 [0 ] / in no VG: 1 [509.84 MiB]pvdisplay //显示物理卷的详细信息[root@localhost ~]# pvdisplay”/dev/sda5” is a new physical volume of “509.84 MiB”— NEW Physical volume —PV Name /dev/sda5 //物理卷名VG Name PV Size 509.84 MiB//物理卷大小Allocatable NO //不可分配PE Size 0// PE的大小Total PE0//总PE数Free PE 0 // 空闲PEAllocated PE0// 分配的PEPV UUID oKjG81-6OeW-BDZh-RLQ3-9rd0-kckI-dus810 //唯一ID第二步:卷组的命令vg(卷组)+动作vgcreate //记住卷组是有名字的呀,所以你建的时候记得要给弄个好名字。[root@localhost ~]# vgcreate kiku /dev/sda5Volume group “kiku” successfully created分析:如果要增加第二个pv咋办,还create吗?好像有点不合情理,kiku已经有了,我还create /dev/sda6?vgextend kiku /dev/sda6 //很合理吧,在已经有的kiku组里增加/dev/sda6,extend就是扩增,扩展的意思。[root@localhost ~]# vgextend kiku /dev/sda6No physical volume label read from /dev/sda6Physical volume “/dev/sda6” successfully createdVolume group “kiku” successfully extendedvgs //查看卷组[root@localhost ~]# vgsVG #PV #LV #SN Attr VSize VFreekiku 1 0 0 wz–n- 508.00m 508.00mvgscan //扫描系统上的卷组,他会去读所有的pv然后确定pv是否有相应的组,然后更新出来[root@localhost ~]# vgscanReading all physical volumes.This may take a while…Found volume group “kiku” using metadata type lvm2vgdisplay //看卷组的详细信息[root@localhost ~]# vgdisplay— Volume group —VG Name kiku//物理卷名System ID Formatlvm2//版本是2哦!Metadata Areas1Metadata Sequence No1VG Access read/write VG Status resizableMAX LV0Cur LV0Open LV 0Max PV0Cur PV1 //当前PV个数Act PV1// 在或定的pv个数VG Size 508.00 MiB//vg大小PE Size 4.00 MiB //PE的大小Total PE127 //总PEAlloc PE / Size 0 / 0 //分配的PEFreePE / Size 127 / 508.00 MiB//空闲PEVG UUID pybc9p-zjkG-9Fe1-yGM6-9m7t-g9Dw-wQ7S48第三步:生成逻辑卷原理:假如PE=4M(分配单元,区),意思是把所有的pv容量加在一起然后以一个PE为单位进行分割,逻辑卷的大小就是靠指定的PE个数来确定。所以分出来的逻辑卷肯定是PE的整数倍。lvcreate -n data -l 80 卷组-n 指定lv的名字,-l指定pe的块数 现在我准备建3个lv, part_one, part_two, part_three,占80PE,大小是320M。[root@localhost ~]# lvcreate -n part_one -l 80kikuLogical volume “part_one” created[root@localhost ~]# lvcreate -n part_two -l 80kikuLogical volume “part_two” created[root@localhost ~]# lvcreate -n part_three -l 80kikuLogical volume “part_three” created 80X4=320M,说明是用PE个数来确定的![root@localhost ~]# lvdisplay | grep “LV Size”LV Size320.00 MiBLV Size320.00 MiBLV Size320.00 MiB现在我们的都做完逻辑上的分区了,那么肯定还差一步,创建文件系统。mkfs.ext4 /dev/卷名/data [root@localhost ~]# mkfs.ext4 /dev/kiku/part_onemke2fs 1.41.12 (17-May-2010)文件系统标签=操作系统:Linux块大小=1024 (log=0)分块大小=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks81920 inodes, 327680 blocks16384 blocks (5.00%) reserved for the super user第一个数据块=1Maximum filesystem blocks=6763315240 block groups8192 blocks per group, 8192 fragments per group2048 inodes per groupSuperblock backups stored on blocks:8193, 24577, 40961, 57345, 73729, 204801, 221185正在写入inode表: 完成Creating journal (8192 blocks): 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 36 mounts or180 days, whichever comes first.Use tune2fs -c or -i to override. 做下一tune2fs[root@localhost ~]# tune2fs -i 0 -c 0 /dev/kiku/part_onetune2fs 1.41.12 (17-May-2010)Setting maximal mount count to -1Setting interval between checks to 0 second 如果要开机自动挂载那么;这一部分就涉及了文件系统的管理哦!#blkid// 这个命令很好用/dev/vda1: UUID=”efd0f0d2-f8ce-4e39-a253-c1c7c1ccc85c” TYPE=”ext4″/dev/vda2: UUID=”a4c93ea1-cab7-457f-a821-1d7491f7586f” TYPE=”swap”/dev/sda5: UUID=”oKjG81-6OeW-BDZh-RLQ3-9rd0-kckI-dus810″ TYPE=”LVM2_member”/dev/sda6: UUID=”rN4kQz-RwXW-bByF-ysfn-I592-epwt-NFdkzn” TYPE=”LVM2_member”/dev/mapper/kiku-part_one: UUID=”d19698f5-2672-4e1d-b1c0-6b2454ba3493″ TYPE=”ext4″[root@localhost ~]# cd /etc/[root@localhost etc]# cp fstab fstab.bak //养成习惯先备份!cp:是否覆盖”fstab.bak”? y[root@localhost etc]# vim fstab mount –a //开机自动挂载咯:成功[root@localhost ~]vim /etc/fstab /dev/mapper/kiku-part_one/part_one ext4defaults00mount -a //看看有没有自动挂载。[root@localhost etc]# mount -a /dev/mapper/kiku-part_onemount: /dev/mapper/kiku-part_one already mounted or /part_one busymount: according to mtab, /dev/mapper/kiku-part_one is already mounted on /part_one问题思考:这些步骤做完了,那么基本上没问题了。one,two ,three 都等大而且可用.那么可能用的时候你发现,one ,不够用了!!!而three还有很多没用,而且很少热动他,现在可以考虑把,three缩小给one。以下几点务必上心: 扩大可以热操作;但是缩小一定冷操作! 扩大不能超过pv值;缩小不能大于文件容量![root@localhost ~]# vgsVG #PV #LV #SN Attr VSizeVFreekiku 2 3 0 wz–n- 1016.00m 56.00m[root@localhost ~]# vgdisplay | grep “PE”PE Size 4.00 MiBTotal PE254Alloc PE / Size 240 / 960.00 MiBFreePE / Size 14 / 56.00 MiB 语法:lvextend -L +1G(增量) 或者4G(绝对值) /dev/卷名/data[root@localhost ~]# lvextend -L +56M/dev/kiku/part_oneExtending logical volume part_one to 376.00 MiBLogical volume part_one successfully resized 查看结果:[root@localhost ~]# vgsVG #PV #LV #SN Attr VSizeVFreekiku 2 3 0 wz–n- 1016.00m0[root@localhost ~]# vgdisplay | grep “PE”PE Size 4.00 MiBTotal PE254Alloc PE / Size 254 / 1016.00 MiBFreePE / Size 0 / 0 [root@localhost ~]# lvdisplay | grep “Size”LV Size376.00 MiBLV Size320.00 MiBLV Size320.00 MiB[root@localhost ~]# lvdisplay | grep “LE”Current LE 94Current LE 80Current LE 80 resize2fs /dev/卷名/逻辑卷名 大小 我们来仔细看一下这resize2fs到底有什么用:[root@studnet20 ~]# man resize2fsNAME resize2fs – ext2/ext3/ext4 file system resizer(用来做ext2,3,4重新定义大小的工具)SYNOPSIS resize2fs[-fFpPM][ -d debug-flags ] [ -S RAID-stride ] device [ size ]DESCRIPTIONThe resize2fs program will resize ext2, ext3, or ext4 file systems.(这个程序将会调整ext2,3,4的文件系统大小)It canbeusedto enlarge or shrink an unmounted file system located on device(可以用来扩大或缩小没有挂载的文件系统!!很重要哦!).If the filesystem is mounted, it can beusedtoexpandthe sizeofthemounted filesystem(如果该文件系统已经挂载了,哪这个工具只能用来扩展文件系统的大小!!), assuming the kernel supports on-line resizing.(而且还需要内核的支持才能线上调节) (As of this writing, the Linux 2.6 kernelsupportson-line resize for filesystems mounted using ext3 only.)2.6内核,只支持ext3的在线操作!缩小要卸载: 从上到下缩小。文件系统— 分区,分区一定不能盖过文件系统。root@localhost ~]# resize2fs /dev/kiku/part_one 300M //先从文件系统开始操作resize2fs 1.41.12 (17-May-2010)请先运行 ‘e2fsck -f /dev/kiku/part_one’.他说要先做一下e2fsck -f 的动作才行![root@localhost ~]# e2fsck -f /dev/kiku/part_onee2fsck 1.41.12 (17-May-2010)第一步: 检查inode,块,和大小第二步: 检查目录结构第3步: 检查目录连接性Pass 4: Checking reference counts第5步: 检查簇概要信息/dev/kiku/part_one: 11/96256 files (0.0% non-contiguous), 22405/385024 blocks做完之后继续:[root@localhost ~]# resize2fs /dev/kiku/part_one 300Mresize2fs 1.41.12 (17-May-2010)Resizing the filesystem on /dev/kiku/part_one to 307200 (1k) blocks.The filesystem on /dev/kiku/part_one is now 307200 blocks long. 文件系统做完之后,该做分区上的动作了,现在对逻辑卷缩小![root@localhost ~]# lvreduce -L300M /dev/kiku/part_oneWARNING: Reducing active logical volume to 300.00 MiBTHIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce part_one? [y/n]: yReducing logical volume part_one to 300.00 MiBLogical volume part_one successfully resized日志提示已经成功咯! 现在的话我想不用逻辑卷了,把实验环境卸掉。那么跟缩小的思路差不多,要成上面开始: 卸载+remove 卸载lv —— 卸载vg———– 卸载pv 这样做完就能释放/dev/sda5 /dev/sda6 vgreduce 卷名 /dev/sdb6 // 要脱掉lv然后在删除。[root@localhost ~]# lvremove /dev/kiku/part_oneDo you really want to remove active logical volume part_one? [y/n]: yLogical volume “part_one” successfully removed[root@localhost ~]# lvs //part_one已经没了哦LV VG Attr LSize Origin Snap%Move Log Copy%Convertpart_three kiku -wi a-320.00mpart_two kiku -wi-a- 320.00m [root@localhost ~]# vgremove kiku//卸载卷组Volume group “kiku” successfully removed [root@localhost ~]# pvremove /dev/sda5//最后卸载物理卷Labels on physical volume “/dev/sda5” successfully wiped[root@localhost ~]# pvremove /dev/sda6Labels on physical volume “/dev/sda6” successfully wiped 总算罗嗦完了,这就是菜鸟能之所以能完成实验的原因,慢慢看,慢慢想,慢慢做。熬夜做好的。 希望看的朋友多留些建议。谢谢,先去睡觉了哦! 想象困难做出的反应,不是逃避或绕开它们,

五天学redhat系列之—文件系统管理推荐

相关文章:

你感兴趣的文章:

标签云: