当前位置:操作系统 > Unix/Linux >>

ext3格式下的quota的实现

ext3下的quota实现

  2002.4.1

  superblood

  ext3是由开放资源社区开发的日志文件系统,ext3被设计成是ext2的升级版本,ext3在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性。这个文件系统被称为ext2的下一个版本。

  ext3fs最大的优点是向下兼容ext2,而且ext3fs还支持异步的日志,这意味着它的性能可能比ext2还好。但是使用ext3文件系统时不支持磁盘限量功能。

  red hat从kernel2.4.17-pre8以后支持ext3的磁盘quota,我选择了更为稳定的kernel2.4.18来实现。

  <1.源文件>

  kernel-2.4.18:http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.18.tar.gz

  quota:ftp://ftp.rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/quota-3.03-1.i386.rpm

  把档案放在/home/src下

  <2.設定方法>

  2-1-2)kernel升级过程:

  #cd /home/src

  #mkdir kernel_update

  #cp ./linux-2.4.18.tar.gz ./kernel_update

  #cd kernel_update

  #tar zxvf linux-2.4.18.tar.gz

  #cd linux

  #make menuconfig

  此时出现Linux Kernel v2.4.18 Configuration的窗口

  Processor type and features --->

  General setup --->

  Memory Technology Devices (MTD) --->

  Parallel port support --->

  Plug and Play configuration --->

  Block devices --->

  Multi-device support (RAID and LVM) --->

  Networking options --->

  Telephony Support --->

  ATA/IDE/MFM/RLL support --->

  SCSI support --->

  Fusion MPT device support --->

  I2O device support --->

  Network device support --->

  Amateur Radio support --->

  IrDA (infrared) support --->

  ISDN subsystem --->

  Old CD-ROM drivers (not SCSI, not IDE) --->

  Input core support --->

  Character devices --->

  Multimedia devices --->

  File systems --->

  Console drivers --->

  Sound --->

  USB support --->

  Kernel hacking --->

  ---

  Load an Alternate Configuration File

  Save Configuration to an Alternate File

  以下都是kernel里的选项,可以根据server硬件的不同自行选择

  与quota有关的设定如下

  找到File systems ---> 的字样 (第22行) 按空格键

  把第一行的Quota support前打上*号

  [*] Quota support

  Kernel automounter support

  <*> Kernel automounter version 4 support (also supports v3)

  < > Reiserfs support

  Ext3 journalling file system support (EXPERIMENTAL)

  [*] JBD (ext3) debugging support

  < > DOS FAT fs support

  < > Compressed ROM file system support

  [*] Virtual memory file system support (former shm fs)

  < > Simple RAM-based file system support

  <*> ISO 9660 CDROM file system support

  [ ] Microsoft Joliet CDROM extensions

  [ ] Transparent decompression extension

  < > Minix fs support

  < > FreeVxFS file system support (VERITAS VxFS(TM) compatible)

  < > NTFS file system support (read only)

  < > OS/2 HPFS file system support

  [*] /proc file system support

  [*] /dev/pts file system for Unix98 PTYs

  < > ROM file system support

  <*> Second extended fs support

  < > System V/Xenix/V7/Coherent file system support

  < > UDF file system support (read only)

  < > UFS file system support (read only)

  Network File Systems --->

  选定以后选择exit退出。

  出现以下:

  ┌──────────────────────────────────────────────────────────┐

  │ Do you wish to save your new kernel configuration? │

  ├──────────────────────────────────────────────────────────┤

  │ < Yes > < No > │

  └──────────────────────────────────────────────────────────┘

  选择yes

  然后出现以下字样:

  Saving your kernel configuration...

  *** End of Linux kernel configuration.

  *** Check the top-level Makefile for additional configuration.

  *** Next, you must run 'make dep'.

  2-1-2)编译kernel

  #make dep

  #make clean

  #make bzImage

  #make modules

  #make modules_install

  2-1-3)cp新的kernel到启动区

  #cp /home/src/kernel_update/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.18

  #mkinitrd /boot/initrd-2.4.18.img 2.4.18

  #vi /etc/lilo.conf

  在最后添加以下

  image=/boot/vmlinuz-2.4.18 <= kernel的路径

  label=newkernel <= 启动时的卷标

  initrd=/boot/initrd-2.4.18.img <= kernelimg的路径

  read-only

  root=/dev/hda2 <= / 所在的区

  #/sbin/lilo -m /boot/map

  2-1-4)重新启动server

  #reboot

  重新启动进入时在redhat lilo的选择界面选择newkernel进入

  2-2)设定quota

  2-2-1)安装quota。

  #cd /home/src

  #rpm -ivv quota-3.03-1.i386.rpm

  2-2-2)设定quota,以home为例

  #vi /etc/fstab

  把

  LABEL=/home /home ext3 defaults 1 2

  改成

  LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2

  重启server

  #/sbin/reboot

  2-2-3)设定用户限定

  #quotacheck -uvg /home

  #edquota -u test

  Disk quotas for user chenc (uid 694):

  Filesystem blocks soft hard inodes soft hard

  /dev/hda5 6000 5000 6000 3 5000 6000

  在soft和hard下添上需要限制的磁盘大小(单位是K)

  #edquota -t

  Grace period before enforcing soft limits for users:

  Time units may be: days, hours, minutes, or seconds

  Filesystem Block grace period Inode grace period

  /dev/hda5 1minutes 1minutes

  设定soft quota和hard quota之间的时间。

  启动quota

  #quotaon -av

  <3、测试>

  用test帐号用ftp进行测试,当test目录达到了5M时,提示Disk quota exceeded.

  欢迎志同道和者前来讨论。

  mail:superblood@21cn.com
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,