Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15171737
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: BSD

2008-04-03 15:54:52

管理交换设备

  在FreeBSD系统中,交换设备的作用非常大,需要为FreeBSD留下足够的交换空间。在系统负载非常大的时候,交换空间不够也会影响系统的执行进程。通常应该将系统交换空间的大小设置为物理内存的1-2.5倍。由于交换空间是用作虚拟存储器,和物理内存进行交换数据的,因此应该设置到高速硬盘上,或者将交换空间分布到多个硬盘中,以均衡负载。FreeBSD是以交错的方式使用各个不同的交换分区,因此如果在不同的硬盘上分布交换分区,就能提高交换设备的存取速度。通常FreeBSD使用disklabel为b的设备用做交换设备,在系统运行过程中可以为FreeBSD 增加其他磁盘上的交换设备,或者使用文件用做交换。

  要增加交换设备,首先要沿着上面的过程创建一个新的disklabel,按照习惯做法,使用b作交换空间的 disklabel。再修改/etc/fstab文件,加入一行有关这个交换设备的描述。或者使用swapon立即使分配的交换空间生效。

  如果要使用文件来用做交换空间,首先要在系统中产生一个用作交换的文件,然后更改/etc/rc.conf,将swapfile参数指向这个文件即可。

# dd  if=/dev/zero of=swapfile bs=10240 count=1024

  事实上,交换文件要首先映射为伪存储设备vn,然后才能安装到系统中的。因此要使用交换文件,就需要内核支持伪存储设备vn,缺省内核支持一个vn设备vn0。可以直接访问这个伪存储设备,手工完成增加交换文件的工作。首先要将交换文件和伪设备相联系,然后就能像处理真实设备一样处理这个伪设备了。将文件和伪设备联系起来需要使用vncon fig命令。

# 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
阅读(310) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~