标签: 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

    网卡类型选择 VMXNET3esxi-nic

    SCSI 控制器选择 LSI Logic Parallelesxi-scsi

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

    在启动前,对虚拟机配置最后做一下编辑。首先是挂载 OmniOS 系统安装光盘镜像,并选择 Connect at power onesxi-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 /24 vmxnet3s0/v4

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

    设置默认网关路由:

    route –p add default 

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

    echo 'nameserver ' >> /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 && 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年路线图中包括增强安全性的加密功能,以及提高存储效率的重复数据删除功能。