Tag Archives: Solaris

在 VMware ESXi 中安装 OmniOS

〇、获取安装文件

第〇步,当然是搞一个安装文件回来

到 http://omnios.omniti.com/wiki.php/Installation ,弄一个当前稳定版或者 LTS 版本。

截至发稿,当前 LTS/Stable 版本为 r151014,相应的 ISO 文件链接为:
http://omnios.omniti.com/media/OmniOS_Text_r151014.iso

记得校验一下:
md5 (OmniOS_Text_r151014.iso) = 796fbfe1305f0e4922e9cf627d3e67c2
sha1 (OmniOS_Text_r151014.iso) = ff91fbfa2b01ca9ac61d5812570109c640c1ddd1

下载回来之后,用 ssh/scp 或者 vSphere Client 等将光盘镜像文件上传到 ESXi 的 datastore 中。

一、创建 ESXi 虚拟机

以下以 ESXi 5.5 为例。

选择自定义创建。
esxi-customize

OS 类型选择 Oracle Solaris 10 (64-bit)esxi-ostype

网卡类型选择 VMXNET3
esxi-nic

SCSI 控制器选择 LSI Logic Parallel
esxi-scsi

新建磁盘。如果只需要 OmniOS,那么新建一个 5GB 的磁盘就够了。OmniOS 官方建议 4.1 GB,最小 2.1 GB。为了升级及临时文件等需要,还是适当放宽一些。如果后续需要安装 Napp-it 作为上层的存储应用系统,那么建议的磁盘大小是 25GB。

在启动前,对虚拟机配置最后做一下编辑。首先是挂载 OmniOS 系统安装光盘镜像,并选择 Connect at power on
esxi-cdrom

虚拟机的创建即告完成。

二、安装 OmniOS

乏善可陈,基本上 F2(下一步)、F2、F2 ... 就完成了。好吧,我们的重点在于后续的 VMXNet3 万兆网卡的配置。

OmniOS 安装完成后,root 密码默认为空,需要你设置密码,及创建新普通用户用于 SSH 登录,或者修改 SSHd 配置文件允许 root 登录之类 balabala....

01-emptypwd

三、安装 VMware Tools 及 VMXNet3 网卡

OmniOS 没有自带 VMXNet3 网卡驱动,因此到了当前这步时,咱们是没有网络可用的,需要安装相关驱动。

首先,断开安装 OS 时为虚拟机挂接上的光驱设备。

VM -> Edit Settings

取消光驱设备的 ConnectedConnect at power on 选项。如果提示锁定之类的,直接点选 Yes 强制解除锁定即可。
2015-04-09_14-18-09

随后在控制台用以下命令开启 OmniOS 的即插即用服务。

svcadm enable hotplug

VM -> Guest -> Install/Upgrade VMware Tools

安装 VMware Tools 这个过程,VMware 是以向虚拟机挂载软件光盘,并尝试自动启动安装进程来进行的,遗憾的是,Solaris 类型的客户机并不能自动挂载光驱,还得手动操作一下。

先找出光驱设备名

ls –l /dev/dsk | grep ide | grep c\*s2

上图中的设备节点 c1t0d0s2,就是我们要找的东西,下面的命令则需要根据你的实际情况来调整。挂载光驱设备:

mount –F hsfs –o ro /dev/dsk/c1t0d0s2 /media

解压展开 VMware Tools 安装文件:

cd /tmp
tar zxvf /media/vmware-solaris-tools.tar.gz
cd vmware-tools-distrib
./vmware-install.pl

提示的所有问题,都用默认值回答,也就是一路狂按 Enter 键。

VMware Tools 安装完成之后,网卡驱动也随之就绪,我们可以开始配置网卡了。

dladm show-link

02-nic

网卡设备 vmxnet3s0 state unknow,为不可用状态。我们为其添加 IP interface

ipadm create-if vmxnet3s0

接下来为该 Interface 添加 IP 地址等参数:

ipadm create-addr –T static –a <IP-address>/24 vmxnet3s0/v4

这时,你再使用 dladm show-link 及 dladm show-phys,应该会得到以下输出:
2015-04-09_14-46-45

设置默认网关路由:

route –p add default <Gateway-IP-address>

指定 DNS 解析服务器并激活:

echo 'nameserver <Nameserver-IP-address>' >> /etc/resolv.conf
cp /etc/nsswitch.dns /etc/nsswitch.conf

 

大功告成,OmniOS 安装告一段落。

对了,建议参照 OmniOS Shell Env Check List 所述,对 OS 环境进行设置以改善操作体验。

OmniOS Shell Env Check List

bash Shell

~/.profile

#!/bin/bash
# Solaris 衍生的 OS,默认都将 GNU 路径放在前面
# 而支持 ACLs 的 ls/chmod ,是在 /usr/bin 目录中的
export PATH=/usr/bin:/usr/sbin:/sbin:/usr/gnu/bin

export TERM=xterm-color

# Enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors &amp;&amp; eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='/usr/bin/ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# Some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

~/.vimrc

set nocp
set bs=2
syntax on

./.inputrc

"\e[1~": beginning-of-line     # Home
"\e[4~": end-of-line           # End
"\e[5~": beginning-of-history  # PageUp
"\e[6~": end-of-history        # PageDown
"\e[3~": delete-char           # Delete
"\e[2~": quoted-insert         # Insert
"\eOD": backward-word          # Ctrl+Left
"\eOC": forward-word           # Ctrl+Right

/etc/default/init

TZ="Asia/Shanghai"
CMASK=022
LANG=en_US.UTF-8

Nexenta Sample /etc/power.conf (for Home Env.)

device-dependency-property removable-media /dev/fb

autopm enable
autoS3 disable

cpupm enable poll-mode
cpu-threshold 1s

device-thresholds /pci@0,0/pci15ad,790@11/pci15ad,1976@1/sd@0,0 10m
device-thresholds /pci@0,0/pci15ad,790@11/pci15ad,1976@1/sd@1,0 10m
device-thresholds /pci@0,0/pci15ad,790@11/pci15ad,1976@1/sd@2,0 10m
device-thresholds /pci@0,0/pci15ad,790@11/pci15ad,1976@1/sd@3,0 10m
device-thresholds /pci@0,0/pci15ad,790@11/pci15ad,1976@1/sd@4,0 10m
device-thresholds /pci@0,0/pci15ad,790@11/pci15ad,1976@1/sd@5,0 10m

device-thresholds /pci@0,0/pci15ad,1976@10/sd@0,0 10m
device-thresholds /pci@0,0/pci15ad,1976@10/sd@1,0 10m

system-threshold always-on

Oracle Solaris 11 Information Library (简体中文)

Oracle Solaris 11 Information Library (简体中文)
http://docs.oracle.com/cd/E26926_01/index.html

打包下载:
http://download.oracle.com/docs/cds/E26926_01.zip

这是个好东西,基本上ZFS所需的资料都在里面了,推荐!

Sun文件系统ZFS的十佳特性 [2009年文章编译]

Sun在2005年推出开源文件系统ZFS,最初是为OpenSolaris设计的。

以下是ZFS支持者认为ZFS具备的十佳特性:

1、元数据校验和确保数据完整性

数据完整性在ZFS中具有非常高的重要性,也是很多ZFS功能的先决条件。

ZFS文件系统采用了256位校验和,当向磁盘写入数据的时候,校验和就会被作为元数据与它相关的数据分开保存。与普通的磁盘块校验和不同的是,这种校验和可以检测出错位写、误读取和误写入、DMA奇偶错误、驱动器bug、意外过量写入以及常见的物理存储的衰减(bit rot)

2、写时才拷贝

ZFS文件系统使用多项技术确保数据在磁盘上的一致性/连续性,其中就包括写时才拷贝(Copy on Write),也就是当数据发生变更的时候它并不会覆盖写入——它总是在指针指向变更数据之前被写入到一个新块并产生校验和。旧的数据可能被保存下来,在发生变更的过程中创建文件系统的快照。利用ZFS的文件写入是事务型的——要么将所有数据写入到磁盘,要么什么都不写入。

3、利用Time Slider的数据快照

OpenSolaris的最新版本展示了ZFS利用TimeSlider小型图形应用所实现的强大快照功能。可以通过配置设定对ZFS文件系统进行常规的快照操作——每15分钟,或者每小时等等。这种快照占用容量很小,而且很高效,因为它只保存与之前快照的变量。

TimeSlider提供了对文件系统(或一个主目录)的查看功能,而且有一个可以沿着时间线返回到更早快照时间的滑块。用户可以观察特定快照时间的文件系统或者文件夹内容。如果想要恢复一份被错误覆盖的文件,或者在升级失败之后还原系统,你只需要将滑块滑向合适的快照时间即可。

4、数据存储池

ZFS利用可用的存储驱动器,将之聚合为一个称为zpool的资源池。这个资源池可以使用脚本、镜像或者某种RAID针对容量、I/O性能或者冗余性进行优化。如果需要更多存储,只需向zpool中添加更多存储就行——ZFS将检测并自动开始使用新添加的容量,平衡I/O并最大化吞吐量。

5、RAIDZ和RAIDZ2

RAID 5有一个广为人知的缺陷——RAID5 Write Hole。RAID 5在写数据的时候,是分为两步的,首先将数据写到磁盘阵列上,然后将该stripe上数据的校验码记录到阵列上,如果在刚写完数据的时候,系统断电,那么该数据对应的校验码就没有机会再恢复了。如果接下来再发生磁盘故障,RAID重建流程将出现错误数据。唯一的解决方案就是,如果整个stripe发生覆盖写入,就创建一个正确的奇偶校验块。

RAIDZ通过使用可变宽度的条带来解决这个问题,这样每次写入实际上是一个完全的条带写入。再加上ZFS的写入时才拷贝特性,这就完全消除了RAID 5的Write Hole缺陷。RAIDZ2同理,但它使用双奇偶校验,允许阵列中丢失两个磁盘。

设置RAIDZ/RAIDZ2阵列非常简单,只需一条命令即可。

6、SSD混合存储池

可以通过向存储池中添加高性能的SSD,使其变成一个固态混合存储池。当这些固态盘作为高性能缓存时,ZFS会用其储存常用数据以提高性能。另外ZFS还采用了L2 ARC(自适应替代高速缓存)技术来暂存那些无需立即保存的数据——在时间和资源允许的情况下,这些数据会被慢慢迁移到传统的更持久的硬盘驱动器中。

7、容量

ZFS是128位文件系统,也就是说理论上它可以保存256千万亿ZB(1ZB=10亿TB)。它的容量远超今日实际所需,至少可预见的未来是如此。

8、数据清洗

ZFS可以清洗存储池中的所有数据,根据相应的校验和检查每个数据来验证其完整性,检测任何潜在的数据损毁,修复可能存在的任何错误。

当数据以冗余形式储存时——例如镜像或者RAID型阵列中——它可以检测修复任何潜在的损坏数据,且无需管理员干预。由于数据损坏都有记录,所以ZFS可以发现内存模块(或其他硬件)导致硬盘数据被错误存储的原因。

数据清理的I/O优先级较低,因此对系统性能影响非常小。用户可以在存储池使用过程中就进行数据清洗。

9、简单有效的管理

使用ZFS命令,你可以用简短而有效的命令来管理系统。例如,5磁盘RAIDZ阵列可以用这样一条命令设置:

zpool create poolname raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0

10、更多期待

ZFS仍在不断发展,不时有新的功能。ZFS的2009年路线图中包括增强安全性的加密功能,以及提高存储效率的重复数据删除功能。