21 FreeBSD连载:管理交换设备

管理交换设备【21 FreeBSD连载:管理交换设备】在FreeBSD系统中 , 交换设备的作用非常大 , 需要为FreeBSD留下足够的交换空间 。在系统负载非常大的时候 , 交换空间不够也会影响系统的执行进程 。通常应该将系统交换空间的大小设置为物理内存的1-2.5倍 。由于交换空间是用作虚拟存储器 , 和物理内存进行交换数据的 , 因此应该设置到高速硬盘上 , 或者将交换空间分布到多个硬盘中 , 以均衡负载 。FreeBSD是以交错的方式使用各个不同的交换分区 , 因此如果在不同的硬盘上分布交换分区 , 就能提高交换设备的存取速度 。通常FreeBSD使用disklabel为b的设备用做交换设备 , 在系统运行过程中可以为FreeBSD增加其他磁盘上的交换设备 , 或者使用文件用做交换 。
要增加交换设备 , 首先要沿着上面的过程创建一个新的disklabel , 按照习惯做法 , 使用b作交换空间的disklabel 。再修改/etc/fstab文件 , 加入一行有关这个交换设备的描述 。或者使用swapon立即使分配的交换空间生效 。
如果要使用文件来用做交换空间 , 首先要在系统中产生一个用作交换的文件 , 然后更改/etc/rc.conf , 将swapfile参数指向这个文件即可 。
# ddif=/dev/zero of=swapfile bs=10240 count=1024事实上 , 交换文件要首先映射为伪存储设备vn , 然后才能安装到系统中的 。因此要使用交换文件 , 就需要内核支持伪存储设备vn , 缺省内核支持一个vn设备vn0 。可以直接访问这个伪存储设备 , 手工完成增加交换文件的工作 。首先要将交换文件和伪设备相联系 , 然后就能像处理真实设备一样处理这个伪设备了 。将文件和伪设备联系起来需要使用vnconfig命令 。
# vnconfig /dev/vn0c swapfile
# vnconfig -u /dev/vn0c可以再次使用使用-u参数的vnconfig将已经与文件相联系的伪存储设备 , 脱离与现有文件的联系 , 首先要求这个伪设备不被系统使用 , 如vn0c没有用作交换设备或已经从系统中卸载了 。通过在vnconfig命令中使用-e参数 , 就可以直接使用vnconfig加入交换 , 而没有必要再次使用swapon命令:
# vnconfig -e /dev/vn0c swapfile swap伪存储设备的用处不止用于交换文件 , 也可以用来安装虚拟文件系统 。因此就可以使用它来管理软盘或光盘的镜象文件 。
# dd if=/dev/rfd0 of=imgfile
# vnconfig vn0c imgfile
# mount -t msDos /dev/vn0c /mnt如果不是象上面例子那样从软盘中生成的镜象文件 , 而是而是要重新建立文件系统 , 那么需要注意的是磁盘的类型 。由于伪设备的大小是由生成的文件决定的 , 那么这个伪设备对应的磁盘种类显然不是标准磁盘种类 , 系统显然也无法从伪设备中检测到磁盘类型 , 因此在生成磁盘的disklabel和进行newfs格式化时就需要指定磁盘类型 。一般由于镜象文件的大小与标准磁盘数据对应的大小不一定一致 , 那么为了充分利用伪设备的大小 , 就需要在/etc/disktab中生成新磁盘类型的数据 。
# vnconfig /dev/vn0c imgfile
# disklabel -r -w vn0 fd1440
# newfs -T fd1440 vn0c
# mount /dev/vn0c /mnt未完 , 待续 。。。

    推荐阅读