Solaris 常见问题( 五 )


下一步,在第一块磁盘上创建第一个子镜像,它包含了启动文件系统:
# metainit -f d50 1 1 c0t0d0s0
然后在第二块磁盘上创建第二个子镜像:
# metainit d52 1 1 c0t1d0s0
使用第一个子镜像创建镜像的第一个部分:
# metainit d54 -m d50
用metaroot修改/etc/vfstab和/etc/system,让系统可以从元设备(metadevice)d54上启动:
# metaroot d54
重新启动系统,然后将添加第二个子镜像d54 。这就强制了“镜像同步”,将第一块盘的内容复制到了第二块盘 。这将在一小段时间内影响系统的性能 。
# metattach d54 d52
为了避免在从第二块盘上紧急启动时发生错误信息,交换分区必须做成相同样式的镜像 。否则,交换分区在损坏的磁盘上,/etc/vfstab仍然会定位到c0t0d0s1 。
现在系统已经可以从第一块盘(boot disk),也可以从第二块盘(boot disk1)上启动了 。
如果有一块磁盘损坏,Solstice DiskSuite会停止启动程序 。这是因为如果要在一次错误以后成功地启动系统,纪录复制数据库的大部分必须依然“幸存” 。在我们的两块镜像盘上仅仅需要六个复制中的三个依然存活 。
超过两块盘的服务需要有第三块盘来用记录复制数据库来配置 。两块盘的工作站必须手动地修复,下面的例子描述了这个过程:
·记录数据库复制在c0t0d0s7和c0t1d0s7上配置,c0t0d0盘发生故障 。
·启动程序被Solstice DiskSuite停止,并转换进入到单用户模式 。
·现在记录数据库复制希望发生错误的盘没有被配置:
metadb -d -f c0t0d0s7
·在下一次重启之后,对重置的磁盘进行分区,使它和仍然活动的磁盘的分区一致 。
·做完这些之后,在重置的硬盘上创建记录数据库复制文件:
metadb -a -c 3 c0t0d0s7
·在下次的重启之后,镜像又可以重新同步了 。
注意:
如果你有一个两块盘的系统,在一块盘上创建三个记录数据库复制,在另一块上面创建四个 。在理论上有50%的机会可以在一次错误后重新启动系统而不需要手动地去使用元数据 。
如果你能接受在2盘系统下发生错误后无人职守的重启,在两块盘上创建相同数量的记录数据库复制并且创建/etc/system条目:
set md:mirrored_root_flag=1
关于这方面内容更多的讨论可以在Sun的蓝皮书“Configuring Boot Disks With Solaris[tm] Volume Manager Software"( http://www.sun.com/blueprints/1002/817-0407-10.pdf)上找到 。

3 SWAP交换空间
3.1 固定配置文件 /etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes –
/dev/dsk/c0t0d0s1 - - swap - no –
/usr/local/swapfile.1 - - swap - no –
...
swap - /tmp tmpfs - yes –
交换文件系统可以使用像/dev/dsk/c0t0d0s1这样的裸分区或者象/usr/local/swapfil.1的空文件 。
你可以定义多个交换文件系统,所有这些都在逻辑上绑定并挂接到/tmp挂接点 。这就意味着只要物理内存是可用的,向/tmp中写文件将写入内存并耗尽内存(not very sure)
例如:
/dev/dsk/c0t0d0s1 - - swap - no –
/dev/dsk/c0t1d0s1 - - swap - no –
/dev/dsk/c0t2d0s1 - - swap - no –
...
swap - /tmp tmpfs - yes –
上面创建了另外的6GB的虚拟内存(假设所有的分区大小为2G).Solaris将条带访问对所有的磁盘 。
3.2 "裸分区”和空文件的比较
最快速的交换就是不进行交换,假如物理交换不可避免,使用在多可磁盘上条带后的分区 。如果实在需要内存或者没有可用的分区或磁盘,则使用空文件系统 。
3.3 临时配置
在标准的SOLARIS操作中,空文件可以加入到交换空间 。
# mkfile 100m /usr/local/swapfile.1
# swap -a /usr/local/swapfile.1
# swap -l
在系统重启之前,这些额外的空间是临时的 。可以使用命令swap -d /usr/local/swapfile.1去掉这些额外的交换空间

推荐阅读