2016年6月11日土曜日

巷で話題の、OpenStackといふものを、小生もしてみむとてするなり

と言うことで、学習・検証環境として用意したのが、こちら。

OpenStack学習・検証環境
 Mac Pro (Mid 2010)
  CPU:Xeon X5650 * 2 (12Core / 24Thread)
  Memory:32GiB (4GiB * 8)
  HDD:2TiB (1TiB SATA HDD * 2)
  OS:El Capitan / Ubuntu 16.04 LTS


この環境を利用して行いたいのは、
  • OpenStackの学習・検証
  • MAAS(Metal as a Service)・JujuによるOpenStack環境のデプロイ
と言ったところ。


今後の予定作業は、次のようなものを考えている。

1. El Capitan と Xenial Xerus のデュアルブート環境構築
 ずいぶんと古い機種なので、可能性は低いのだが、ファームウェアの
 アップデートなどに、OS Xが必要となるため、El Capitan も残す方向で。

2. KVMのインストールとNested KVMの有効化
 OpenStack環境は、KVMの仮想マシンとして実装する予定なので、Nested
 KVMは必須。

3. MAAS・Jujuのインストール
 このあたりは、日本語のドキュメントが少なそうなので、試行錯誤する
 ことになりそう。


最終的には、現在 VMWare ESXi が稼働している、Fujitsu PRIMERGY TX100 S3 もこの環境に組み込んで、MAASの売りであるベアメタル環境の配備なんかも試したいと考えている。


と、ここまで考えてはみたものの、FJ系でお仕事を続けるのなら、Ubuntuは無いだろうなと...

2013年11月5日火曜日

OS X (Mavericks)の完全バックアップが作成できない場合

先日、Mavericksにバージョンアップを行ったあと、pkgsrcで導入しているツールの再構築などを実施しており、万一に備えバックアップからの復元が可能か確認してみたところ、大問題が...


  1. Time Machineからの復元が可能かを確認するため、システムを終了する。
  2. 電源ボタンを押下し、電源を投入。
  3. 起動音が鳴るまで、[command] + [R]キーを押下し続ける。
  4. 「バックアップからシステムを復元」を選択 (詳細手順失念)。
  5. NAS (Time Machineのバックアップ先) を選択。
  6. "OS Xシステムのバックアップが見つかりません。"と表示されるって、おい!!


日々のバックアップ (もちろんTime Machineを利用) は、正常に終了しており、バックアップがないはずがないじゃないか....

と言うことで、作業を中止し、通常起動する。

「Time Machineに入る」を選んで、過去のバックアップをブラウズすると...
/Usersしか取れてないじゃん ;'(


こんな目に遭遇した方は、以下の手順で、「完全バックアップ」を取得しておきましょう。


1) /Library/Preferences/com.apple.TimeMachine.plist の設定を確認する。

Time Machine の設定は、上記のファイルに保存されている。
Binary形式なので、次のコマンドを実行し、内容を確認(Xcodeが導入されていることが前提ですが...)。

  % sudo open /Library/Preferences/com.apple.TimeMachine.plist


"ExcludeByPath"に以下のディレクトリ(以降、「システム関連ディレクトリ」とします)が定義されている場合は、「完全バックアップ」の作成ができません。


  • /Applications
  • /Library
  • /System
  • /bin
  • /private
  • /sbin
  • /usr


2) システム関連ディレクトリを、"ExcludeByPath"から削除。

一部のブログなどでは、「com.apple.TimeMachine.plistを削除する」と言う記述がありますが、小生の環境では、削除しても元の設定が復元されてしまいました。
と言うことで、以下のコマンドを実行。

  % for i in /Applications /Library /System /bin /private /sbin /usr
  for> do
  for>     sudo tmutil removeexclusion -p $i
  for> done


3) バックアップ開始コマンドを実行。

  % tmutil startbackup


後はひたすら、バックアップ完了まで待ちましょう。

2013年8月4日日曜日

備忘録:ESXiのコマンド操作

気がつけば、自宅に検証用として以下の環境が出来上がって(単に購入したとも)いました。

 物理ホスト:Fujitsu PRIMERGY TX100 S3
       Intel Xeon E3-1230v/8GBメモリ/500GB HDD x 2
 Hypervisor  :ESXi 5.1

と言うことで、早速現在参画中のプロジェクトの検証環境として、CentOS 6.4 を導入して、リモートから接続できる環境を立ち上げています。
利用方法は、以下の通り。


  1. 宅内サーバに接続し、Wake on LANで物理ホストの電源を投入
  2. ESXiに乗り込み(SSH接続)、ゲストOSを起動
  3. ゲストOSにSSH接続し、作業を実施
  4. ゲストOSの停止
  5. ESXiを停止

少しばかり手順は多くなりますが、常時稼働には適さない環境ですので、仕方ないかと思ってます。


と言うことで、本日の本題。
ESXiでゲスト環境をコマンドで操作する際の備忘録です。

まずは、サブコマンドの一覧などを。

第一階層は、こんな感じです。


  # vim-cmd 
  Commands available under /:
  hbrsvc/       internalsvc/  solo/         vmsvc/        
  hostsvc/      proxysvc/     vimsvc/       help

ゲストOSを操作するサブコマンドは、こんな感じ。


  # vim-cmd vmsvc/
  Commands available under vmsvc/:
  acquiremksticket                 get.snapshotinfo                 
  acquireticket                    get.spaceNeededForConsolidation  
  connect                          get.summary                      
  convert.toTemplate               get.tasklist                     
  convert.toVm                     getallvms                        
  createdummyvm                    gethostconstraints               
  destroy                          login                            
  device.connection                logout                           
  device.connusbdev                message                          
  device.disconnusbdev             power.getstate                   
  device.diskadd                   power.hibernate                  
  device.diskaddexisting           power.off                        
  device.diskremove                power.on                         
  device.getdevices                power.reboot                     
  device.toolsSyncSet              power.reset                      
  device.vmiadd                    power.shutdown                   
  device.vmiremove                 power.suspend                    
  devices.createnic                power.suspendResume              
  disconnect                       queryftcompat                    
  get.capability                   reload                           
  get.config                       setscreenres                     
  get.config.cpuidmask             snapshot.create                  
  get.configoption                 snapshot.dumpoption              
  get.datastores                   snapshot.get                     
  get.disabledmethods              snapshot.remove                  
  get.environment                  snapshot.removeall               
  get.filelayout                   snapshot.revert                  
  get.filelayoutex                 snapshot.setoption               
  get.guest                        tools.cancelinstall              
  get.guestheartbeatStatus         tools.install                    
  get.managedentitystatus          tools.upgrade                    
  get.networks                     unregister                       
  get.runtime                      upgrade


現状の利用方法では、取り敢えずゲストOSの起動ができればよいので、以下のコマンドを覚えておけばよいかな。

 1. ゲストの一覧確認

  # vim-cmd vmsvc/getallvms
  Vmid  Name                File                 Guest OS     Version   Annotation
  1     CentOS6 [datastor1] CentOS6/CentOS6.vmx  centos64Guest  vmx-08

 2. 対象ゲストの電源状態確認

  # vim-cmd vmsvc/power.getstat 1
  Retrieved runtime info
  Powered off

 3. 対象ゲストの電源投入


  # vim-cmd vmsvc/power.on 1
  Powering on VM:


あと、スナップショットの操作や、新規ゲストの作成、ゲスト環境の変更なんかを覚えておけば、vSphere Clientのお世話になることなく操作ができるのかな。
そのあたりは、またの機会に。



2013年4月3日水曜日

Solarisカルチャーショックのお話 - パスワード設定編


Oracle Solaris 10 の 8/11リリースより、pam.confの
定義が変更となっています。

rootアカウントでも、パスワードポリシーのチェックが
強制されるため、初期パスワードとしてアカウント名と
同じものを設定する際に、注意が必要です。


pam.conf 設定変更箇所

 other  password requisite      pam_authtok_check.so.1 force_check
                                                       ^^^^^^^^^^^

rootアカウントでのポリシーチェックを回避する場合は、
"force_check"を削除する必要があります。


ちなみに、アカウント名をパスワードに指定した場合は、
以下のエラーメッセージが表示されます。

「パスワードには、ログイン ID の文字を循環的に移動
 させたものは使用できません。」

これは、"pam_authtok_check.so.1"でチェックしている
以下のポリシーに抵触するためです。

 circular shift

これを回避するには、/etc/default/passwdファイルにて、
"NAMECHECK=NO"を定義する必要があります。

2012年12月16日日曜日

備忘録:ZFSルートのバックアップ手順

1. バックアップ用領域の作成

 % sudo zpool create -f backup c4t1d0s0 

 % zpool list
 NAME     SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
 backup  15.9G   126K  15.9G   0%  1.00x  ONLINE  -
 rpool   15.9G  5.22G  10.7G  32%  1.00x  ONLINE  -


2. ルートプールのプロパティを確認(ファイルに保存した方が良いかも)


 % zpool get all rpool 
 NAME   PROPERTY       VALUE                 SOURCE
 rpool  size           15.9G                 -
 rpool  capacity       32%                   -
 rpool  altroot        -                     default
 rpool  health         ONLINE                -
 rpool  guid           7318362038220972324   -
 rpool  version        33                    default
 rpool  bootfs         rpool/ROOT/solaris-1  local
 rpool  delegation     on                    default
 rpool  autoreplace    off                   default
 rpool  cachefile      -                     default
 rpool  failmode       wait                  default
 rpool  listsnapshots  off                   default
 rpool  autoexpand     off                   default
 rpool  dedupditto     0                     default
 rpool  dedupratio     1.00x                 -
 rpool  free           10.7G                 -
 rpool  allocated      5.22G                 -
 rpool  readonly       off                   -

3. ルートプールの容量確認

 % zpool list rpool
 NAME    SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
 rpool  15.9G  5.22G  10.7G  32%  1.00x  ONLINE  -

4. ルートプールのコンポーネントを特定(ファイルに保存した方が良いかも)

 % zfs list -r rpool
 NAME                       USED  AVAIL  REFER  MOUNTPOINT
 rpool                     5.29G  10.3G  46.5K  /rpool
 rpool/ROOT                2.97G  10.3G    31K  legacy
 rpool/ROOT/solaris        5.58M  10.3G  1.61G  /
 rpool/ROOT/solaris-1      2.96G  10.3G  1.62G  /
 rpool/ROOT/solaris-1/var   571M  10.3G   364M  /var
 rpool/ROOT/solaris/var    2.86M  10.3G   203M  /var
 rpool/dump                1.29G  10.4G  1.25G  -
 rpool/export               140K  10.3G    32K  /export
 rpool/export/home          108K  10.3G    32K  /export/home
 rpool/export/home/koji    76.5K  10.3G  76.5K   /export/home/koji
 rpool/swap                1.03G  10.4G  1.00G  -

5. ルートプールの再起的なスナップショットを作成

 % NOW=`date +%Y%m%d_%H%M%S`
 % sudo zfs snapshot -r rpool@rpool.${NOW}
 % zfs list -t snapshot
 NAME                                             USED  AVAIL    REFER  MOUNTPOINT
 rpool@rpool.20121216_115705                         0      -    46.5K  -
 rpool/ROOT@rpool.20121216_115705                    0      -    31K  -
 rpool/ROOT/solaris@rpool.20121216_115705            0      -    1.61G  -
 rpool/ROOT/solaris-1@install                    9.14M      -    1.40G  -
 rpool/ROOT/solaris-1@2012-12-07-02:16:10         179M      -    1.61G  -
 rpool/ROOT/solaris-1@rpool.20121216_115705          0      -    1.62G  -
 rpool/ROOT/solaris-1/var@install                 146M      -     215M  -
 rpool/ROOT/solaris-1/var@2012-12-07-02:16:10    18.1M      -     383M  -
 rpool/ROOT/solaris-1/var@rpool.20121216_115705      0      -     364M  -
 rpool/ROOT/solaris/var@rpool.20121216_115705        0      -     203M  -
 rpool/dump@rpool.20121216_115705                    0      -    1.25G  -
 rpool/export@rpool.20121216_115705                  0      -    32K  -
 rpool/export/home@rpool.20121216_115705             0      -    32K  -
 rpool/export/home/koji@rpool.20121216_115705        0      -    76.5K  -
 rpool/swap@rpool.20121216_115705                    0      -    1.00G  -

6. swap及び、dumpのスナップショットを削除

 % sudo zfs destroy rpool/dump@rpool.${NOW}
 % sudo zfs destroy rpool/swap@rpool.${NOW}
 % zfs list -t snapshot                              
 NAME                                             USED  AVAIL    REFER  MOUNTPOINT
 rpool@rpool.20121216_115705                         0      -    46.5K  -
 rpool/ROOT@rpool.20121216_115705                    0      -    31K  -
 rpool/ROOT/solaris@rpool.20121216_115705            0      -    1.61G  -
 rpool/ROOT/solaris-1@install                    9.14M      -    1.40G  -
 rpool/ROOT/solaris-1@2012-12-07-02:16:10         179M      -    1.61G  -
 rpool/ROOT/solaris-1@rpool.20121216_115705          0      -    1.62G  -
 rpool/ROOT/solaris-1/var@install                 146M      -     215M  -
 rpool/ROOT/solaris-1/var@2012-12-07-02:16:10    18.1M      -     383M  -
 rpool/ROOT/solaris-1/var@rpool.20121216_115705  76.5K      -     364M  -
 rpool/ROOT/solaris/var@rpool.20121216_115705        0      -     203M  -
 rpool/export@rpool.20121216_115705                  0      -    32K  -
 rpool/export/home@rpool.20121216_115705             0      -    32K  -
 rpool/export/home/koji@rpool.20121216_115705        0      -    76.5K  -

7. スナップショットをバックアップディスクに格納

 % sudo sh -c "zfs send -Rv rpool@rpool.${NOW} | gzip >/backup/rpool.${NOW}.gz" 
 sending from @ to rpool@rpool.20121216_115705
 WARNING: could not send rpool/swap@rpool.20121216_115705: does  not exist
 sending from @ to rpool/export@rpool.20121216_115705
 sending from @ to rpool/export/home@rpool.20121216_115705
 sending from @ to rpool/export/home/koji@rpool.20121216_115705
 sending from @ to rpool/ROOT@rpool.20121216_115705
 sending from @ to rpool/ROOT/solaris-1@install
 sending from @install to rpool/ROOT/solaris-1@2012-12-07-02:16:10
 sending from @2012-12-07-02:16:10 to rpool/ROOT/solaris-1@rpool.20121216_115705
 sending from @ to rpool/ROOT/solaris-1/var@install
 sending from @install to rpool/ROOT/solaris-1/var@2012-12-07-02:16:10
 sending from @2012-12-07-02:16:10 to rpool/ROOT/solaris-1/var@rpool.20121216_115705
 WARNING: could not send rpool/dump@rpool.20121216_115705: does  not exist
 sending from @ to rpool/ROOT/solaris@rpool.20121216_115705
 sending from @ to rpool/ROOT/solaris/var@rpool.20121216_115705
 % ls -hl /backup 
 total 2214377
 -rw-r--r--   1 root     root        1.1G 12月 16日  12:12  rpool.20121216_115705.gz

ZFSルートシステムのバックアップとリストア

Solaris 11 カルチャーショックの第四弾。

ZFSルートのシステムにおける、システムバックアップとリストアの手順については、Oracleの公式ドキュメントに詳しく記載されているので、そちらを参照して頂くとして、保存媒体をどうすべきかということを考えてみたい。


まず、Solaris 11の前はどのようにしていたかを振り返ってみよう。

PRIMEPOWERシリーズの場合、DATドライブを内蔵していることが多く、ufsdumpコマンドでDATテープにバックアップイメージを保存することが、通常の手段であった。

ところが、SPARC Enterprise Tシリーズの登場後、DATドライブの搭載が出来ない、インストールメディアにテープデバイスのドライバが含まれなくなった等の要因が有り、テープ媒体への保存が最適な手段とは言えなくなった。
取り得る手段は以下のようなものが考えられる。


  1. 運用システムとは別に、回復システムを構築し、バックアップ領域用に搭載したHDDにufsdumpイメージを保存する。
  2. テープドライブのドライバをインストールした回復システムを構築し、外付けテープドライブにufsdumpイメージを保存する。
  3. ETERNUSシリーズを利用したSAN Boot環境とし、ディスクアレイ装置のスナップショット機能(アドバンスト・コピー)を利用する。
実際の運用に用いたことはないが、USB HDDへのufsdumpイメージ保存という手段も利用可能だろう。


それでは、Solaris 11 の ZFSルート環境ではどうであろうか?

まず、上記 1. の手段。
ufsdumpコマンドが利用できないため、zfs snapshot コマンドで代替することになると思われる。
さらに、回復システムが必要かという点も考慮が必要であろう。

では、2. の手段はどうか。
zfs snapshot コマンドが、テープドライブをサポートしない以上、利用することは不可能であり、候補にはなり得ない。

最後に、3. の手段。
これは、そのまま適用できるだろう。
しかしながら、SAN Boot 環境となると、それなりの初期投資が必要となることから、適用可能なプロジェクトは限られるものと思われる。


災害対策用として、バックアップメディアを複数用意していた場合(テープの遠隔地保存等)はどうか。

この場合は、USB HDDの利用も大きな選択肢となるのではないか。もちろん、内蔵HDDに保存したスナップショットを、リートシステムに転送するという手段も考えられる。が、転送先にもZFSを利用可能なシステムが必要となり、初期投資がネックになると考えられる。
ただし、スナップショットを保存するためのシステムと考えず、通常時は試験環境として利用し、災害発生時は代替システムとして本番運用に利用するという用い方には適しているのではないだろうか。


ufssump/ufsrestoreを用いたバックアップ・リストアと比較し、選択肢が増えたと言えるが、適材適所での提案が必要になると言うことだろう。

2012年12月15日土曜日

ZFSルートとfuser

Solaris 11 カルチャーショックの第三弾。

Solaris 10 (の初期リリースのみ??)でよく遭遇した、システム停止(再起動)時のこのメッセージ。

 umount: / busy


当時サポートに問い合わせて、対処方法を探ったような記憶がある。
psコマンドと、fuserコマンドを利用して、当該ファイルシステムを使用しているプロセスを特定して下さい、と言われたような...
(結局、「システムの再起同時にfsckが走らなければ影響はないです」だって?)

そんな問題に遭遇した場合、ZFSルートのシステムではどうするの?
てことで、こんな環境で試してみた。


 % zfs list
 NAME                       USED  AVAIL  REFER  MOUNTPOINT
 rpool                     5.29G  10.3G  46.5K  /rpool
 rpool/ROOT                2.96G  10.3G    31K  legacy
 rpool/ROOT/solaris        5.58M  10.3G  1.61G  /
 rpool/ROOT/solaris-1      2.96G  10.3G  1.62G  /
 rpool/ROOT/solaris-1/var   570M  10.3G   363M  /var
 rpool/ROOT/solaris/var    2.86M  10.3G   203M  /var
 rpool/dump                1.29G  10.4G  1.25G  -
 rpool/export               138K  10.3G    32K  /export
 rpool/export/home          106K  10.3G    32K  /export/home
 rpool/export/home/koji    73.5K  10.3G  73.5K  /export/home/koji
 rpool/swap                1.03G  10.4G  1.00G  -

 % pwd
 /export/home/koji

 % ps
   PID TTY         TIME CMD
  1602 pts/1       0:00 zsh
  1610 pts/1       0:00 ps

 % fuser -c /export/home/koji 
 /export/home/koji:     1613c    1602c


ZFSルートだからといって、特別な挙動は見せないようですね。
zfsコマンドのサブコマンドでは取得できないようですし、今までと同じ管理手順を利用できると分かり、一安心です。


2012年12月10日月曜日

Solarisカルチャーショックのお話 - システムディスクmirror編 -

Solaris 11 で体験したカルチャーショック その2。
本日のお題は、「システムディスクのmirror設定」です。

通常、システムの耐障害性を向上させるため、システムディスク(OSがインストールされているハードディスク)はRAID1(ミラーリング)構成とされます。

Solaris 10 までの場合、ルートファイルシステムは(よっぽど変わり者でない限り)UFSとなります。この場合、RAID1構成とするには、別途Solistice DiskSuiteや、PRIMECLUSTER Global Disk Services等のソフトを利用することとなります。
ところが、Solaris 11 から ZFSルートがデフォルトとなったため、上記のオプションソフトを利用せずにRAID1構成が可能となりました。簡単に出来そうなのですが、ちょっとした落とし穴もあるため、以下に設定手順を整理しておきます。
 ※インストール時にRAID1構成を指定可能なのかは、検証していません。


インストール直後は、システムディスクは単独構成となっているため、ミラー用のディスクを追加する必要があります。
まずは、現状の状態確認を行います。

 % zpool status rpool
   pool: rpool
  state: ONLINE
   scan: none requested
 config:

         NAME        STATE     READ WRITE CKSUM
         rpool       ONLINE       0     0     0
           c4t0d0s0  ONLINE       0     0     0

rpoolは、c4t0d0s0単独で構成されている状態です。
ここに、ミラー用のディスクを追加することとなりますが、追加するために若干の作業(ミラー先ディスクに、ラベル付けを行っておく)が必要となります。


 % sudo format
 
 Searching for disks...done
 
 AVAILABLE DISK SELECTIONS:
        0. c4t0d0 <ATA-VBOX HARDDISK-1.0 cyl 2085 alt 2 hd 255 sec 63>
           /pci@0,0/pci1000,8000@16/sd@0,0
        1. c4t1d0 <VBOX-HARDDISK-1.0 cyl 2086 alt 2 hd 255 sec 63>
           /pci@0,0/pci1000,8000@16/sd@1,0
 Specify disk (enter its number): 1

ミラー先ディスクは、c4t1d0になるので、「1」を入力する。


 selecting c4t1d0
 [disk formatted]
 No Solaris fdisk partition found.

 FORMAT MENU:
         disk       - select a disk
         type       - select (define) a disk type
         partition  - select (define) a partition table
         current    - describe the current disk
         format     - format and analyze the disk
         fdisk      - run the fdisk program
         repair     - repair a defective sector
         label      - write label to the disk
         analyze    - surface analysis
         defect     - defect list management
         backup     - search for backup labels
         verify     - read and display labels
         save       - save new disk/partition definitions
         inquiry    - show disk ID
         volname    - set 8-character volume name
         !<cmd>     - execute <cmd>, then return
         quit
 format> fdisk


fdiskパーティションの作成を行うため、「fdisk」と入力する。



 No fdisk table exists. The default partition for the disk is:
 
   a 100% "SOLARIS System" partition
 
 Type "y" to accept the default partition,  otherwise type "n" to edit the
  partition table.
 y

「y」を入力し、ディスク全体を、Solarisパーティションとする。


 format> partition

スライス設定のため「partition」と入力する。

 
 PARTITION MENU:
         0      - change `0' partition
         1      - change `1' partition
         2      - change `2' partition
         3      - change `3' partition
         4      - change `4' partition
         5      - change `5' partition
         6      - change `6' partition
         7      - change `7' partition
         select - select a predefined table
         modify - modify a predefined partition table
         name   - name the current table
         print  - display the current table
         label  - write partition map and label to the disk
         !<cmd> - execute <cmd>, then return
         quit
 partition> 0

スライス0に全領域を割り当てるため、「0」を入力する。


 Part      Tag    Flag     Cylinders        Size            Blocks
   0 unassigned    wm       0               0         (0/0/0)           0
 
 Enter partition id tag[unassigned]: 
 Enter partition permission flags[wm]: 
 Enter new starting cyl[0]:
 Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 2085c
 partition> p
 Current partition table (unnamed):
 Total disk cylinders available: 2085 + 2 (reserved cylinders)
 
 Part      Tag    Flag     Cylinders        Size            Blocks
   0 unassigned    wm       0 - 2084       15.97GB    (2085/0/0) 33479460
   1 unassigned    wm       0               0         (0/0/0)           0
   2     backup    wu       0 - 2084       15.97GB    (2085/0/0) 33495525
   3 unassigned    wm       0               0         (0/0/0)           0
   4 unassigned    wm       0               0         (0/0/0)           0
   5 unassigned    wm       0               0         (0/0/0)           0
   6 unassigned    wm       0               0         (0/0/0)           0
   7 unassigned    wm       0               0         (0/0/0)           0
   8 unassigned    wu       0               0         (0/0/0)       0
   9 unassigned    wm       0               0         (0/0/0)           0


スライス0に全領域が割り当てられたことを確認。

 
 partition> label
 Ready to label disk, continue? y


変更をディスクに書き込むため「label」と入力する。

 
 partition> q
  
 FORMAT MENU:
         disk       - select a disk
         type       - select (define) a disk type
         partition  - select (define) a partition table
         current    - describe the current disk
         format     - format and analyze the disk
         fdisk      - run the fdisk program
         repair     - repair a defective sector
         label      - write label to the disk
         analyze    - surface analysis
         defect     - defect list management
         backup     - search for backup labels
         verify     - read and display labels
         save       - save new disk/partition definitions
         inquiry    - show disk ID
         volname    - set 8-character volume name
         !<cmd>     - execute <cmd>, then return
         quit
 format> q

ミラー先ディスクの準備が整ったので、いよいよミラー化の実施です。


 % sudo zpool attach -f rpool c4t0d0s0 c4t1d0s0
 Make sure to wait until resilver is done before rebooting.


RAID1構成となったこと及び、コピーの進捗確認は、以下のコマンドで。

 % zpool status rpool
   pool: rpool
  state: ONLINE
 status: One or more devices is currently being resilvered.  The pool will
         continue to function, possibly in a degraded state.
 action: Wait for the resilver to complete.
   scan: resilver in progress since Mon Dec 10 13:08:06 2012
     223M scanned out of 5.22G at 2.17M/s, 0h39m to go
     223M resilvered, 4.18% done
 config:

         NAME          STATE     READ WRITE CKSUM
         rpool         ONLINE       0     0     0
           mirror-0    ONLINE       0     0     0
             c4t0d0s0  ONLINE       0     0     0
             c4t1d0s0  ONLINE       0     0     0  (resilvering)

 errors: No known data errors



ミラー先ディスクの事前準備を忘れた場合は、s0が存在しないため、cXtXdXで指定することになるが、その場合、以下のエラーが発生するので注意すること。

 % sudo zpool attach rpool c4t0d0 c4t1d0

 cannot label 'c4t1d0': EFI labeled devices are not supported on root pools.


zpool の attach コマンドで、"-f" オプションを指定しなかった場合は、こちらのエラーが...

 % sudo format zpool attach rpool c4t0d0s0 c4t1d0s0

 invalid vdev specification
 use '-f' to override the following errors:
 /dev/dsk/c4t1d0s0 overlaps with /dev/dsk/c4t1d0s2


Solistic DiskSuiteやPRIMECLUSTER GDSよりも、かなり簡単な作業でRAID1構成とすることが可能と感じた。


-- 2012年12月10日 17時15分 追記 --

上記手順だけでは、ミラー先ディスクから起動できません。
ブートローダーをインストールしましょう。 :-)


手元に、Sparc環境がないので、x86環境のみですが....


まずは、boot archive の更新のため、システムをリブート(もちろん、bootadmコマンドで更新してもOKですが、環境変更後も起動が可能であることを確認する意味もあるため、リブートを推奨)。

  % sudo shutdown -i6 -g0 -y


無事起動できたら、ブートローダーをミラー先ディスクにインストール。

 % sudo bootadm install-bootloader c4t1d0s0


正常に終了したら、一度システムを停止。



ミラー元ディスク(例の場合、c4t0d0)をアクセスできない状態にして、システムを起動。
無事に起動すれば、設定完了だ。
システムを停止して、ミラー元ディスクをアクセス可能な状態にしておこう。

2012年12月7日金曜日

Solarisカルチャーショックのお話 - ipadmコマンド編 -

和歌山の地方ISPに転職し、Solarisから遠ざかること2年と10ヶ月弱。
その間に、Solaris 11 11/11がリリースされ、先日は、ついにバージョン表記が変更となる 、Solaris 11.1がリリースされた。
またまた、Solarisメインの職業に復帰することになり、新しいバージョンでの変更点確認や、操作の勘を取り戻すため、VirtualBox上に環境構築しようと思い立ったまではよかったが...

Solaris 11で経験した、カルチャーショック( :-P )をあげてみる。


  • ZFSルートがデフォルトになっていた :-O
  • /etc/hostname.IF ファイルが存在しない (ipadmで管理する)
  • Boot Environment ってなに?
  • root の デフォルトシェルが "bash" に変更された


現在のところ、こんなものだけれど、まだまだたくさん出てくるのだろうな :-(


で、ipadm。

インストール時にプライマリインターフェイスとして選択した、ホストオンリーアダプタについては、設定が実施され通信可能(当然ですね)だが、外部に出て行くことが出来ない状態だった(これも当然ですね)。
/etc/hostファイルにエントリーを追加して、/etc/hostname.IF ファイルを作ったらリブートしてOKじゃん、なんて安易に考えていました...

そういえば、DHCPの定義ってどうするんだっけ? と。ホストオンリーアダプタの設定方法をまねれば問題ないね、と安易に考えていましたよ。

 % ifconfig -a

して、インターフェイス名を確認(net2だった)。

 % cat /etc/hostname.net2
 cat: cannot open /etc/hostname.net2: No such file or directory

えっ!! hostname.IF ファイルがない?!

そいじゃ、どうやってネットワーク設定するんだよ (怒
てことで、Google先生にお伺いしました。ふむふむ、ipadmコマンドとやらを使うのね。
で、こんな感じで設定してみた。

1. インターフェイスの作成。ifconfig plumb相当?
 % sudo ipadm create-ip net0

2.net0 が作成されたことを確認。
 % ifconfig -a

3.net0 をDHCPで構成する。
 % sudo ipadm create-addr -T dhcp net0/v4dhcp

4.net0 にIPアドレスが割り当てられていることを確認。
 % ifconfig -a

5.net0 にデフォルトゲートウェイが割当られている。
 % netstat -rn


以上で、無事外部と通信できるようになった。
ちなみに、sudoコマンドを使用しているけれど、Solaris 11的には、pfexec ~なんだろうね :-)

2012年10月2日火曜日

自宅サーバのお引っ越し その一

今年(2012年)の夏は、計画外停電が多く、UPSを使用していない自宅サーバには、「無事でいてくれてありがとう」と言いたい。

とは言え、いつも同じように無事でいられるとは限らないので、UPSの導入か、VPSサーバへ切り替えるかの選択を考えていたわけです。
初期費用が無料で、月額料金が1千円以下のVPSと言う条件(ASAHIネットの固定IP料金が、800円なので、月々の負担増加を最小限に抑えられることから)で、次の3件を候補とした。


  • KDDIウェブコミュニケーションズ(CloudCore VPS)
  • さくらインターネット(さくらのVPS 1G)
  • お名前.com(VPS(KVM) メモリ1GBプラン)

使用OSは、自宅サーバで利用してるNetBSDが第一希望だけれど、KVMとの相性は良くないことは承知の上で、挑戦してみることとした。


まずは、CloudCore VPS。
CPUがAMD製であることを認識した時点で、落ちてしまうことはとあるブログで確認してはいました。しかし、currentで修正されている可能性を信じ、Mountain Lionでクロスコンパイルを実施。もちろん、x86_errata()の処理には、手を加えてはいない状態です。
結果は、ごらんのとおり。


そのほかにも、ネームサーバを別途用意しなければいけないなど、料金的な魅力も打ち消されてしまい、CloudCoreは諦めることとした。


次は、さくらのVPS。
virtioを無効にするとか、SMP、ACPIを無効にして起動する必要があるとかいった情報もありましたが、最新のcurrent (6.99.11) では、何ら問題なく起動しました。


この後、インストールは正常に終了するが、起動時にカーネルを読み込めないとかの問題がありましたが、GPTからMBRに変更してあげることで、起動可能となった。


現在は、自宅サーバの環境を復元すべく、各種パッケージの導入中という状況。
とりあえず、さくらのVPSで走ってみるつもり。