<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>inak@tech-U</title>
<link>https://ameblo.jp/tokaigawa/</link>
<atom:link href="https://rssblog.ameba.jp/tokaigawa/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>主に、システム開発面で気になった事や、自己啓発のまとめを書いています。</description>
<language>ja</language>
<item>
<title>ストレージの原則と技術のまとめ Chapter1</title>
<description>
<![CDATA[ Chapter1 インフォメーションストレージ入門<br><br>1.1 インフォメーションストレージ<br>1.1.1 データ<br><br>データ＝生の事実<br><br>デジタルデータ=0,1で表現されるデータ<br><br>1.1.2 データの種類<br>構造化データ＝RDBMSを使って保存される<br>非構造化データ＝要素を行と列に格納できないデータ<br><br>1.1.3 ビッグデータ<br><br>ビッグデータ＝使用されているソフトウェアツールの性能では許容時間内に取得、格納、管理、処理しきれないサイズのデータセット<br><br>ビッグデータエコシステムの構成要素<br>・デバイス=複数の場所からデータを収集し、新しいデータも生成する<br>・データコレクタ＝デバイスとユーザーからデータを収集する<br>・データアグリゲータ＝収集したデータを集めて意味のある情報を引き出す<br>・データのユーザーとバイヤー＝凝縮された情報から恩恵を受ける<br><br>ビッグデータをリアルタイムに分析するためには<br>ハイパフォーマンスなMPP(Massively Parallel Processing)データプラットフォームを提供、<br>データセットの高度な分析を可能にする新しいテクニック、アーキテクチャ、ツールが必要。<br><br>1.1.4 インフォメーション<br><br>インフォメーション＝データから導きだされるインテリジェンス(知恵)とナレッジ(知識)<br><br>1.1.5 ストレージ<br><br>ストレージ＝データを格納するために設計されたデバイス<br><br>1.2 ストレージアーキテクチャの進化<br><br>旧来<br>サーバ中心のストレージアーキテクチャ(物理資源中心)<br><br>これから<br>インフォメーション中心のアーキテクチャ<br><br>ストレージデバイスはサーバから独立、中央で管理<br>ストレージデバイスは複数のサーバで共有<br><br><br>1.3 データセンターのインフラストラクチャ<br>1.3.1 データセンターの中核要素<br>次の５つの中核要素が不可欠<br>・アプリケーション<br>・DBMS<br>・ホストまたはコンピュート<br>・ネットワーク<br>・ストレージ<br><br><br>1.3.2 データセンターの主な特性<br><br>・可用性＝要求されたときに必要な情報を提供する<br>・セキュリティ＝不正アクセス防止の為のポリシー、手続き、など<br>・スケーラビリティ＝サーバやDBの追加を業務を中断することなく拡張できるように。<br>・パフォーマンス＝要求されたパフォーマンスを常に提供できるように。<br>・データの完全性＝データが受け取った通りの状態で格納され、取得されるように。<br>・キャパシティ＝大量のデータを処理する為のリソースが必要。<br>・管理可能性＝すべてのリソースを簡単かつ総合的に管理できなければならない。<br><br>1.3.3 データセンターの管理<br><br>・監視<br>・レポート作成<br>・プロビジョニング＝リソースを準備するプロセス<br><br><br>1.4 仮想化とクラウドコンピューティング<br><br>仮想化＝物理リソースを抽象化し、それらを論理リソースとして表す技術。<br><br>クラウドコンピューティング＝個人またはビジネスがITリソースをネットワーク経由のサービスとして利用できるようになる。<br><br><br><br>1.5 まとめ
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11849104836.html</link>
<pubDate>Tue, 13 May 2014 14:16:47 +0900</pubDate>
</item>
<item>
<title>2013 15 Sep</title>
<description>
アメンバー限定公開記事です。
</description>
<link>https://ameblo.jp/tokaigawa/amemberentry-11613848825.html</link>
<pubDate>Sat, 14 Sep 2013 22:42:08 +0900</pubDate>
</item>
<item>
<title>サーバのF/W設定(基本)</title>
<description>
<![CDATA[ サーバにおけるファイアウォールの設定について<br><br>■確認<br><br>基本的には、<br>/sbin/iptables -L<br>で確認して、ポートが空いていればOK<br><br>Chainという単位で細かく設定できる。<br><br>Chain INPUT (policy ACCEPT)　入ってくるパケットの設定<br>Chain FORWARD (policy ACCEPT)　転送するパケットの設定<br>Chain OUTPUT (policy ACCEPT) 出ていくパケットの設定<br><br>入ってくるのを止めることが多いので、INPUT句をメンテナンスすることが多そう。<br><br><br><br>■書きかた<br>例)  512番ポートに対して tcp による通信を許可する場合<br>#/sbin/iptables -I INPUT -p tcp -m tcp --dport 512 --syn -j ACCEPT<br><br><br><br>参考：<br>http://www.astec-x.com/FAQ/iptables.html<br>http://homeserver.seesaa.net/article/5049375.html<br>
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11543816721.html</link>
<pubDate>Mon, 03 Jun 2013 12:18:57 +0900</pubDate>
</item>
<item>
<title>gestioIPの検証(導入編)</title>
<description>
<![CDATA[ gestioIP使い方<br>[編集]使い方検証<br><br>ユーザーログイン<br>http://[Server Name]]/gestioip<br>にアクセス後<br>ユーザー名: gipadmin<br>パスワード: ***<br>でログイン。<br><br>ホストの取得<br>import/export -&gt; Discoveryで見つける事が出来た。<br>例) sgatewayに対して照会。<br>     DNSとSNMPでホストを見つけようとする。<br>     有効と思われるネットワークで全て舐めようとするためものっすごい時間かかる。<br>     ※マニュアル参照して、もっと簡便なやり方あれば、追記。<br><br>マニュアル:ファイル:Documentacion GestioIP 30 en.pdf
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11541666286.html</link>
<pubDate>Fri, 31 May 2013 11:58:25 +0900</pubDate>
</item>
<item>
<title>gestioIPの検証(インストール編)</title>
<description>
<![CDATA[ ☆gestioIPインストール<br><br>各種入手系<br>gestioIP<br>mod_perl(入っていない場合)<br><br>インストール方法<br>手順　参考<br>http://log4hc.wordpress.com/2013/03/20/gestioip/<br><br>注意点<br>※perlのモジュールもいれないとダメらしい<br>➡CPANインストール<br>※apacheのbinaryは/usr/sbin/apachectl<br>※apxsは/usr/local/apache2/bin/apxs<br>mod_perlがないと怒られたのでここ参考にインストール<br>http://home.wi-wi.jp/scripts/log/2006020101/index.html<br>※httpd.confで、modulesの場所が違うかったので、そこだけ注意<br><br>sh実行後、エラーメッセージ<br>sudo yum install perl-Net-IP \<br>perl-DBI perl-DBD-mysql perl-DateManip net-snmp-perl \<br>perl-Date-Calc perl-TimeDate perl-MailTools perl-Net-DNS perl-GDGraph<br>インストール後、apacheが503、前任者の設定がわからないので一旦削除して入れ直す。<br>yum remove httpd<br>そしてもう一度、confにmod_perl設定し直す。<br>➡OK<br><br><br>
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11541665615.html</link>
<pubDate>Fri, 31 May 2013 11:56:20 +0900</pubDate>
</item>
<item>
<title>VMware tech day 2013のまとめ</title>
<description>
<![CDATA[ 1章<br>仮想化の基礎<br><br>オンラインチュートリアルで講義があるので、セッションでは割愛。<br><br>講演者が補足で<br>「VMは単なるプロセス、アプリケーションと同じ、この解釈で考えるとわかりやすい！」<br>と述べておられた。<br><br><br>２章<br>仮想マシンの作り方<br>　　仮想マシンの定義<br>　　　　ゲストOSと仮想HWのセット<br>　　　　ゲストOS自体は物理マシン上のOS(ホストOS)と変わらない<br>　　　　Disk上にファイルとして存在(.vmx)とか(pptのexeと同じ)<br><br>　　仮想マシンのHW<br>　　　　CPUとかメモリの検討、設計(vCPUはMAX64個)<br>　　　　スペックを決める<br> <br>　　ゲストOSのインストール<br>　　　　基本的にホストOSと同じ<br>　　　　インストール後VMwareToolsインストール<br>　　　　　　仮想マシンの性能向上<br>　　　　　　Win、Soralis用と別途用意されている<br> <br>　　テンプレート<br>　　　　VMのひな形<br>　　　　これでクローン作成<br>　　　　　　作成した瞬間IP競合するのでは？？<br>　　　　　　カスタマイズできる<br>　　　　DC間で異なる拠点のテンプレートからVM作成可能<br>　　　　※VMotionは拠点をまたげない<br> <br>　　　　　　テンプレート化されるとVM一覧から消える<br>　　　　　　　　実体自体は変わっていない<br>　　　　　　　　sysprepにカスタマイズデータを与える<br>　　　　　　　　sysprepはOS起動時に読み込まれる<br> <br>　　　　　　テンプレートの(パッチなどの)更新<br>　　　　　　　　できない、ではどうする？<br>　　　　　　　　　　VMに戻す(Convert to VM)<br>　　　　　　　　　　パッチ更新後、またテンプレートに戻す<br><br><br><br><br>3章<br>コンピュータリソース<br><br>　　リソース配分を適切化したい<br>　　　　VMを一度落とさないとダメ？<br>　　　　　　リソースプールがある<br><br>　　CPU管理<br>　　　　vCPUとは？<br>　　　　　　実体はない<br>　　　　　　コードが実行できない<br>　　　　　　　　VMkernelにリクエストして物理CPUが与えられる<br>　　　　　　　　(CPU実行時間をもらう)<br>　　　　　　　　＝HEC(HardWare Execute Context) <br>　　　　　　　　これはVMに特別限ったことではない<br>　　　　　　　　たとえば、WindowsではOSがプロセスをスイッチングし<br>　　　　　　　　て常にそれぞれのプロセスを実行しているように<br>　　　　　　　　見せたりとか。<br><br>　　　　　　実際、複数のvCPUがリクエストしたらどうなる<br>　　　　　　　　管理者が決めておく<br>　　　　　　　　　　シェア数を変更など<br>　　　　　　　　　　　　これはリソース競合時に適用される<br>　　　　　　　　事前に設定できる項目として<br>　　　　　　　　　　制限(上限)<br>　　　　　　　　　　予約(下限)<br>　　　　　　　　　　シェア<br><br>　　　　　　メモリ管理<br>　　　　　　　　メモリの種類<br>　　　　　　　　　　仮想メモリ＝アプリにマッピングされたメモリ<br>　　　　　　　　　　物理メモリ＝VMに割り当てられたメモリ<br>　　　　　　　　　　マシンメモリ＝実際にハードが持っているメモリ<br><br>　　　　　　　　ケチケチ使う仕組み<br>　　　　　　　　　　VMkernelが管理<br>　　　　　　　　　　　　VMが必要な分だけ貸す<br>　　　　　　　　　　透過的なページ共有<br>　　　　　　　　　　　　詳しくはここいらか？　　　　　　　　　<br>　　　　　(http://d.hatena.ne.jp/takaochan/20101010/1286693164)<br>　　　　　　　　　　　　同一内容のページは同一の物理ページに割当<br>　　　　　　　　　　　　　　どれくらいの発生頻度か？<br>　　　　　　　　　　　　　　VMが同一のOSで動いていた場合は<br>　　　　　　　　　　　　　　わりかし発生しやすい<br>　　　　　　　　　　　　　　言い換えると、<br>　　　　　　　　　　　　　　OSがバージョンまで完全に同一でなければ<br>　　　　　　　　　　　　　　ほとんど発生しない<br>　　　　　　　　　　　　　　共有されたページをCOW(copy-on-write)<br>　　　　　　　　　　　　　　として扱う<br><br>　　　　　バルーンドライバ<br>　　　　　　　　VMからメモリを回収する仕組み<br>　　　　　　　　VMware Toolsの中のドライバ<br><br>　　　　　リソースプールの設定<br>　　　　　　　ホストが持つCPU、メモリをVMに提供する仕組み<br>　　　　　　　一応VMごとにも設定できるが、<br>　　　　　　　所属しているハイパーバイザーごとに設定した方が楽<br><br>お昼休憩<br>　　お弁当は<a href="http://kizanshop.jp/index.html" target="_blank">コレ</a><br>　　<br><br>4章<br>VMのマイグレーション<br>　　vMotion<br>　　　　PowerOnでも引っ越しOK-ライブマイグレーション　<br>　　　　用途<br>　　　　　　HWの全体使用率向上<br>　　　　　　DRS-ホスト間の負荷調整<br>　　　　今日何度も言うけどVMはプロセス<br>　　　　　　プロセスの実体は？<br>　　　　　　　　メモリ上のコンテンツ<br>　　　　　　　　　　このメモリの内容を別ホストに持っていくということ<br>　　　　　　　　　　メモリの内容は常々変更されるけど。。。<br>　　　　　　　　　　　　一瞬でコピーできない<br>　　　　　　　　　　　　ビットマップが変更点を覚えている<br>　　　　　　　　　　　　　　その差分が一定以下になると<br>　　　　　　　　　　　　　　　VMはいったん切られる<br>　　　　　　　　　　　　　　　　➡つまり完全無停止ではない<br>　　　　vMotionの必要要件<br>　　　　　　VM側<br>　　　　　　　　VMが今使っているホストの<br>　　　　　　　　　ローカル資源を使っていないこと<br>　　　　　　ホスト側<br>　　　　　　　　vMotionネットワーク<br>　　　　　　　　共有ストレージ<br>　　　　ストレージvMotion<br>　　　　　　ファイルを別ストレージに渡しておく<br>　　　　　　ストレージの種類は問わない<br>　　　　　　VMkernelが両方に投げる<br><br>4章<br>ロードバランス<br>　　<br>　　DRCクラスタ<br>　　　　クラスタ＝ESXiのホスト＋仮想サーバ<br>　　　　　　初期配置<br>　　　　　　負荷分散<br>　　　　リソース管理について<br>　　　　　　初期配置　<br>　　　　　　負荷分散<br>　　　　　　電力管理<br>　　　　　　ようは管理<br>　　　　設定<br>　　　　　　自動化レベルの設定<br>　　　　　　　　vMotion自動<br>　　　　　　　　※勝手にVMを別のホストに動かしちゃうので要注意<br>　　　　　　　　VMごとにもできる<br>　　　　　　追加はドラドロ<br>　　　　　　アフィ二ティルール<br>　　　　　　　　VMごとにこれとこれは同じホストとかそういう設定<br>　　　　　　EVC<br>　　　　　　　　CPUの世代間を合わせる➡合わせないとvMotion<br>　　　　　　　　　できない場合もあるから<br>　　　　　　　　　　CPUの最大公約数的考え方<br>　　　　　　　　　　➡つまり、新しいCPUの機能が制限されてしまう<br><br>5章<br>仮想DCの監視と管理<br>　　<br>　　vCenter Server<br>　　　Performanceチャート<br>　　　　OverViewチャート<br>　　　　Advancedチャート<br>　　何をどう見るか？<br>　　　CPU利用率<br>　　　メモリ<br>　　　ネットーワーク<br>　　　　　バルーンのアクティビティとか。。<br>　　　　　VMkernelのスワップ発生<br>　　　　　アクティブメモリの監視<br>　　　　　　　➡これよりも多く、マシンのメモリを割り当てるなど<br>　　　　　　　　　の対策ができたり。。<br>　　　HDD I/O<br>　　　　　ネットワークとCPUは強い相関関係あり<br><br><br>6章<br>可用性<br><br>　　ホストがこけたら。。。。<br>　　　　vSphere HAを組んどけ！<br>　　　　　　残っているマシンでVMを再起動<br>　　　　　　※ただし、プロセスは保証しない<br>　　　　アーキテクチャ<br>　　　　　　Master<br>　　　　　　　データストア大　<br>　　　　　　　SlaveとHeartbeat投げ合う<br>　　　　HAはホストが判断する(vCenterは見ない)<br>　　　　　　　つまりvCenterがコケていてもホスト障害を検知できる。<br><br>　　　　HAの有効化<br>　　　　　　　まずはクラスタ定義<br>　　　　　　　　　アドミッションコントロールをON/PFF<br>　　　　　　　　　余っていてもカツカツになりそうだったら、<br>　　　　　　　　　　PowerOnには使わせない<br><br>　　　　FT<br>　　　　　メニューで一発<br>　　　　　vLockStep<br>　　　　　冗長化されたセカンダリで動く<br>　　　　　　　➡プロセスも動いている<br>　　　　　プライマリ<br>　　　　　　　I/Oするのはこっち。セカンダリは追随しているだけ。<br><br><br><br>                        <br><br>
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11540943716.html</link>
<pubDate>Thu, 30 May 2013 10:25:27 +0900</pubDate>
</item>
<item>
<title>rails基本2</title>
<description>
<![CDATA[ データベースとモデル<br><br><br>DB設定ファイル<br>Railsではアプリケーションを実行する時に3つのモード(開発、テスト、本番)が用意されています。<br>主な理由としては、開発、テスト時のデータベースを分けたりなど。。<br><br><br><br><br>DBの作成<br>DBの作成は基本rakeでできる。<br>rake db:create<br><br><br>モデルの作成<br>rails generate model モデル名<br>※ここで。config/database.ymlを見ていた。。<br><br>モデルと一緒にマイグレーションファイルもできていた。<br>マイグレーションファイルに作成したいテーブルのカラム情報を記述して<br>rake db:migrate<br><br>これでテーブルが作成される。<br>      t.string :name<br>      t.date :sales_date<br>書き方としてはこんな感じ<br><br><br><br>モデルの削除<br>rails destroy model モデル名<br><br>モデルとマイグレーションも削除される。<br><br><br><br><br>マイグレーション機能とは<br>マイグレーションスクリプトを用意して、テーブル操作を行う事。<br><br>SQL直書きだと、元に戻したりの操作が難しい。<br>マイグレーションファイルを使うと、１コマンドでその時点でのスナップショットに戻す事ができる。<br>up,downメソッドでカラムの追加、削除ができる。<br>up,downメソッドでaddXXX、removeXXXと定義しておけば、changeメソッドにカラム書くだけでOK<br><br><br><br>実際に作ってみる<br>①プロジェクトの作成<br>rails new sample_mysql -d mysql<br>②DBの作成<br>rake db:create<br>③モデルの作成<br>rails generate model title<br><br><br>④確認<br>mysql&gt; describe titles;<br>+------------+--------------+------+-----+---------+----------------+<br>| Field      | Type         | Null | Key | Default | Extra          |<br>+------------+--------------+------+-----+---------+----------------+<br>| id         | int(11)      | NO   | PRI | NULL    | auto_increment |<br>| name       | varchar(255) | YES  |     | NULL    |                |<br>| sales_date | date         | YES  |     | NULL    |                |<br>| created_at | datetime     | NO   |     | NULL    |                |<br>| updated_at | datetime     | NO   |     | NULL    |                |<br>+------------+--------------+------+-----+---------+----------------+<br>5 rows in set (0.00 sec)<br><br>mysql&gt; describe schema_migrations;<br>+---------+--------------+------+-----+---------+-------+<br>| Field   | Type         | Null | Key | Default | Extra |<br>+---------+--------------+------+-----+---------+-------+<br>| version | varchar(255) | NO   | PRI | NULL    |       |<br>+---------+--------------+------+-----+---------+-------+<br>1 row in set (0.00 sec)<br><br>mysql&gt;<br><br><br><br>mysql&gt; select * from schema_migrations;<br>+----------------+<br>| version        |<br>+----------------+<br>| 20130528064015 |<br>+----------------+<br>1 row in set (0.00 sec)<br><br>mysql&gt;<br><br><br>このversionの値は最後に実行されたマイグレーションファイルのナンバーになっている。<br><br><br>rake db:versionでも確認できる。<br><br><br><br>新しいマイグレーションを追加して、テーブルを変更<br>[root@sub01 sample_mysql]# rails generate migration AddColumnTitles<br>      invoke  active_record<br>      create    db/migrate/20130528065505_add_column_titles.rb<br>[root@sub01 sample_mysql]#<br><br>こんな感じでマイグレーションファイルを生成する。<br>そうすると、、<br>class AddColumnTitles &lt; ActiveRecord::Migration<br>  def up<br>  end<br><br>  def down<br>  end<br>end<br><br>のようにup,downメソッドが作られている。ので<br>class AddColumnTitles &lt; ActiveRecord::Migration<br>  def up<br>    add_column :titles, :places, :string<br>  end<br><br>  def down<br>    remove_column :titles, :places, :string<br>  end<br>end<br><br>こんな感じに変更。じゃあ、型とかを自動生成したい場合は<br><br>rails generate migration AddDetailsToTitles price:integer author:string<br><br>で型のremoveを仕掛けたい場合は<br>rails generate migration RemoveAuthorFromTitles author:string<br><br><br>これで<br>class RemoveAuthorFromTitles &lt; ActiveRecord::Migration<br>  def up<br>    remove_column :titles, :author<br>  end<br><br>  def down<br>    add_column :titles, :author, :string<br>  end<br>end<br><br>マイグレーションファイルを削除したい場合<br>rails destroy migration AddColumnTitles<br><br><br><br>最新のマイグレーションを実行してみる<br>mysql&gt; describe titles;<br>+------------+--------------+------+-----+---------+----------------+<br>| Field      | Type         | Null | Key | Default | Extra          |<br>+------------+--------------+------+-----+---------+----------------+<br>| id         | int(11)      | NO   | PRI | NULL    | auto_increment |<br>| name       | varchar(255) | YES  |     | NULL    |                |<br>| sales_date | date         | YES  |     | NULL    |                |<br>| created_at | datetime     | NO   |     | NULL    |                |<br>| updated_at | datetime     | NO   |     | NULL    |                |<br>| price      | int(11)      | YES  |     | NULL    |                |<br>+------------+--------------+------+-----+---------+----------------+<br><br><br>authorは追加されずにpriceだけ追加されている。<br><br><br><br>マイグレーションのロールバック<br>rake db:rollback<br><br>これで、前回はauthorを追加したマイグレーションが適用されて、カラムが追加される。<br><br><br><br>ステップ数の指定をしてロールバックを行う事も出来る<br>rake db:rollback STEP=ステップ数<br><br><br><br>NOT NULLなどの制約の設定<br>こんな感じ<br>create_table :titles do |t|<br>    t.string :name, :null =&gt; false<br>    t.integer :old, :default =&gt; 10<br>    t.string :address, :null =&gt; false, :default =&gt; 'Tokyo'<br>end<br><br><br><br>この条件でマイグレーションファイルを作成してみる。<br><br><br><br><br><br>■テンプレートの作成とアクションからの利用<br><br>-テンプレートの作成とアクションからの利用<br><br>①コントローラを作成<br>②そのコントローラに空メソッドshow追加<br>③viewにshow.html.erb追加<br>④route.rbに get "books/show"を追加<br><br>これで、アクションに対応したテンプレートが表示される。<br><br><br>-レイアウトの利用<br><br>アプリケーション全体で適用されるレイアウト<br>＝app/views/layouts/application.html.erb<br>これこにデフォルトでヘッダーやらフッターの定義が書かれている<br><br><br><br>&lt;%= yield %&gt;<br><br><br><br>この&lt;%= yield %&gt;にHTMLコンテンツが埋め込まれる。<br><br><br>app/views/layouts<br>にコントローラ名.html.erbを使うと、<br>該当のコントローラが呼び出され場合に、<br>application.html.erbではなく、こちらが呼び出される。<br><br><br><br><br>コンとローラクラスの中で、どのレイアウトを使用するかを指定したい場合は<br>layout 'レイアウトファイル名'をクラス名の次ぐらいで指定しておく。<br><br><br>もっと細かい粒度、アクション単位でレイアウトを指定したい場合。<br>メソッド内で<br>render :layout =&gt; 'レイアウトファイル名'<br>ファイル名じゃなくて、拡張子の前までの名前。<br><br><br><br><br><br><br><br><br><br><br><br><br>
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11539795037.html</link>
<pubDate>Tue, 28 May 2013 15:05:20 +0900</pubDate>
</item>
<item>
<title>仮想化の基礎(VMware Tech day 2013事前資料より)</title>
<description>
<![CDATA[ ○仮想化の概念<br><br>　　物理インフラ：<br>　　　　1マシン1OS<br>　　仮想インフラ：<br>　　　　物理ホスト -&gt; vSphere ESXi -&gt; ハイパーバイザー -&gt; 各仮想マシン<br><br><br>○仮想マシンにする理由<br>　　物理マシンだと・・・・<br>　　　　ライフサイクル短<br>　　　　HWアップグレードの影響受ける<br>　　　　move,copy難<br>　　仮想マシンだと・・・・<br>　　　　管理容易<br>　　　　HWに依存しない(ハイパーバイザーが介しているのでそこが吸収してくれる)<br>　　　　レガシー0S(App)サポート(どんなOSでも上で動かせる)<br><br>○仮想化の仕組み<br>　　ハイパーバイザー型(仮想化専用OS)<br>      　　VMwareの製品だとvSphere<br>     　　　　このvSphereはvCenter ServerやESXiから構成されている。<br>　　アプリ型<br>　　　　VMware FusionとかSW上で動くタイプ<br><br>○仮想化のネットワークは？<br>　　仮想スイッチで動く<br>　　　　仮想NIC(仮想マシンに割り当てられるNIC)<br>　　　　仮想スイッチが頑張る<br>　　　　　　仮想スイッチは仮想NICと物理NICをひも付ける<br>　　　　　　1台のESXiの仕組み<br>　　　　　　複数マシンではどうすればいいか？<br>　　　　　　　　分散スイッチ！！！<br><br>○ストレージについて<br>　　WindowsではNTFS<br>　　LinuxではNFSとか<br>　　vSphereではデータストア<br>　　　　FSはVMFSと呼ぶ<br>　　　　　　ファイルの置き場所としては、NFSとかと大差ない<br>　　　　　　クラスタFSが特徴(複数台のFSを束ねる)<br><br>○クライアントについて<br>　　vSphere Client<br>　　　　接続先はvCenter Server、ESXiだったり、複数管理しているなら大体vCenter Server<br>　　　　インベントリ<br>　　　　　　インベントリとは、vCenter Serverの管理対象<br>　　　　　　　　ESXiだったり、ESXi配下の仮想マシンだったり<br><br><br><br><br><br><br><br><br><br><br>
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11539717143.html</link>
<pubDate>Tue, 28 May 2013 14:42:49 +0900</pubDate>
</item>
<item>
<title>rails基本1</title>
<description>
<![CDATA[ rails調査<br>無性にrailsを触ってみたくなったので。<br><br>基本的なrailsでのWebアプリ作成の手順を学んでいく。<br>RubyLifeの記事Rails入門を読ませて頂きながら軽くメモ<br><br>rails new [project name]<br><br>proxy環境下においては<br>この前にexport http_proxyしておくといろいろ捗る<br>というかそれしてないと捗らない<br><br>rails s<br>root@sub01 sample]# rails s<br>/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)<br><br>javascriptのモジュール読み込みエラー<br>http://jurakudai.blog92.fc2.com/blog-entry-18.html<br><br>これで暫定対応<br>➡恒久対応あるか？？<br><br>Gemパッケージ<br>Rubyで使われるライブラリやアプリケーションはGemと呼ばれる形式のパッケージにすることができる。<br><br>Bundlerとは<br>BundlerはRailsアプリケーションに必要となるGemパッケージの種類やバージョンを管理し、複数のPCで必要なGemパッケージをインストールする仕組みを提供してくれる。<br><br>Gemfile.lock<br>➡ここに複数環境で触る際に、いろんなモジュールのバージョンが書いてあることにより整合をとってくれる。<br><br>さて、プロジェクトをいろいろいじくってみる。<br>外部から見えてよい、静的コンテンツの配置は<br>[project name]/public<br>の下にあるhtmlファイルが対象になる。<br><br>---------------------------------------------------------------------<br>MVC<br><br>まずはコントローラ<br>rails generate controller [controller name]<br>これを実行すると<br>[controller name]_controller.rbなどが作成される。<br><br>class [controller name]Controller &lt; ApplicationController<br>end<br><br>こんなのがひな形でできる。<br>ここにメソッドを足してみる。<br>  def hello<br>    render :text =&gt; 'Hello!'<br>  end<br><br>※render :text =&gt; 'Hello!'の部分が利用者へテキストを返す部分<br><br>ここまでで、controllerが利用者に文字列を返す中身までは出来た。<br>ただこのままでは見れない。<br>ルーティングの設定が終わっていない。<br><br>route.rb<br>match 'hello' =&gt; 'booklist#hello'<br><br>このように記述すると<br>http://サーバ名:3000/helloにしたときに<br>booklist_controller.rbが呼び出され、その中のメソッドhelloが呼ばれる。<br><br>今回は文字列のみ。<br>整形されたページを表すにはどうすればよいのか？？？<br><br>というか、今回は文字列のみであったが、通常はビューに値を渡して表示させる。<br><br>app/views/[controller name]の下に、そのhtmlファイルを作成する。<br><br>そしてコントローラからビューを呼び出したい場合は<br>def hello<br>    render "booklist/hello"<br>  end<br>のように記述する。<br><br><br>renderの行の記述がなくとも、メソッド名に対応するhtmlファイルがcontroller以下に作成されていれば、表示自体はされる。(viewファイルの名前を変えたいときにrenderを使うイメージか？？)<br><br><br><br>次にviewにメッセージを渡してみる。<br><br>コントローラのメソッドにviewに渡す変数を定義し、vire側でもそれを表示する。<br>[C]<br>def hello<br>    @msg = 'こんにちは。お久しぶりです。';<br>  end<br><br>[V]<br>&lt;%= @msg %&gt;<br>この&lt;%=  %&gt;で囲まれた部分にrubyのプログラムを記述することができる。<br><br><br>なるほど、以上基本的なコントローラの使い方。<br>publicは静的ページだったけど、app/views/[controller name]の下では動的ページを記述できそうですな。。<br><br><br>つづいて、モデル<br><br>モデルは基本、DBと1対1対応。<br><br>まずはDBの設定から。。。<br>設定ファイルはconfig\database.yml<br><br>rake db:create<br>これでDBが生成される。<br><br>ではモデルの作成<br>rails generate model [model name]<br><br><br>app/models/[model name].rb<br>に加え、テストファイルも作成される。<br><br>これが、モデルクラスの骨子となるもの<br>class [Model name] &lt; ActiveRecord::Base<br>end<br><br><br>db/migrate/20130523044941_create_titles.rb<br>このようにマイグレーションファイルも作成される。<br>※マイグレーションファイルとは、例えばテーブルを作成するのに直接作成するのではなく、テーブルを作成するというスクリプトファイルを作成した上で、そのスクリプトを実行することでテーブルを作成するものです。なぜこのような手間をかけるのかと言えば、<br>(1)テーブルに関して行なった処理を記録し、元に戻したり別の環境で同じ処理を簡単に行なわせることができる、<br>(2)データベースの種類に関係無く同じスクリプトでテーブルを作成できる、といった利点があります。<br><br>それでは、このマイグレーションファイル(いわゆるスクリプトファイル)を編集してみる。<br>基本的にはカラムを追加するイメージ<br><br>class CreateTitles &lt; ActiveRecord::Migration<br>  def change<br>    create_table :titles do |t|<br><br>      t.string :name<br>      t.date :sales_date<br><br>      t.timestamps<br>    end<br>  end<br>end<br><br><br>こんな感じ。<br><br>そして<br>rake db:migrate<br>これでテーブルが更新される。<br><br>そのままデータを掘り込んでいってもいいけれども<br>seedでテストデータを作成してみる。<br><br>db/seed.rbに記述。<br>Title.create(:name =&gt; 'Emanuel', :sales_date =&gt; '2011-12-11')<br><br>で<br>rake db:seed<br><br>ほんとにできているかちょっと確認する。<br>rails dbconsole<br>これでsqliteが起動する。<br><br>これでOK<br><br>続いて、コントローラにモデルから値を引っ張ってくるようにする。<br>  def hello<br>    @titles = Title.all<br>  end<br><br>続いて、ビューで表示できるようにする。<br>&lt;% @titles.each do |title| %&gt;<br>[title]&lt;%= title.name %&gt;,[sales_dates]&lt;%= title.sales_date %&gt;<br><br>&lt;% end %&gt;<br><br><br>これでOK<br><br><br>---------------------------------------------------------------------<br>Scaffoldを使ってみる<br><br><br>Scaffold機能を使うとコマンドを1つ実行するだけでアプリケーションに必要なコントロールやビュー、そしてモデルを自動的に作成してくれます。<br><br><br>rails generate scaffold モデル名<br>rails generate scaffold モデル名 フィールド名1:データ型1 ...<br><br><br>実際に実行してみる<br><br>ぬあんと<br>controller <br>model<br>と<br>CRUDのview<br>が出来ている！！！！<br><br>そしてマイグレーションファイルには、記述された絡むがきちんと書かれているではないか！！<br><br>またコントローラに関しても<br>「index」「show」「new」「edit」「create」「update」「destroy」のアクションメソッドが自動的に定義されている。<br><br><br>実際に動かしてみる<br><br>rake db:migrate<br><br>http://sub01.cps.ricoh.co.jp:3000/[scaffoldで書いたモデルの複数形]<br>にアクセス<br><br><br>ホントにCRUDできる！！<br><br><br><br><br>---------------------------------------------------------------------<br>コントローラとアクション<br><br><br>コントローラ深堀<br><br>基本は<br>rails generate controller コントローラ名<br><br><br>アプリケーションを作成しながら確認してみる。<br>rails new sample<br><br>rails generate controller items<br><br><br>で出来たコントローラの雛形<br>class ItemsController &lt; ApplicationController<br>end<br><br><br>※原則として、モデル名の複数形にしたものを使う！！！<br><br>※キャメルでもアンダースコア式に記述しても、コントローラのファイル名、中のクラス名は変わらない。<br><br><br>アクションの作成と呼び出し<br><br>以下のようにコントローラを作成<br>rails generate controller items<br><br>アクションをコントローラ作成と同時に作成したい場合は<br>rails generate controller friends new show<br><br>結果、出来てる<br>class FriendsController &lt; ApplicationController<br>  def new<br>  end<br><br>  def show<br>  end<br>end<br><br>また、ビューファイルもそれぞれのアクションに対応して出来てる。<br><br><br>別のアクション用のテンプレートを呼びだしたい場合<br><br><br>同じコントローラーに含まれるアクションを呼び出したい場合<br>render :action =&gt; 'アクション名'<br>render 'アクション名'<br><br>別のコントローラーに含まれるアクションを呼び出したい場合<br>render :template =&gt; 'コントローラ名/アクション名'<br>render 'コントローラ名/アクション名'<br><br><br>テンプレートが存在しない場合は、<br>Template is missingと出る<br><br><br>ここで閑話休題<br><br>簡単にアクションの確認をしたい場合(主にテスト段階)<br>renderメソッドを使って利用者へテキストを出力する。<br>render :text =&gt; 'Hello'<br>こんな感じ<br><br>他にもいろいろオプションある<br>statusオブション<br>render :text =&gt; 'テキスト', :status =&gt; 404<br>render :nothing =&gt; true, :status =&gt; 403<br><br>layoutオプション(true,falseで設定)<br>htmlのソースを返す<br><br><br><br><br>JSON/XML形式で出力させるには？？？<br><br>JSONだとこんな感じ<br>  def index<br>    personal = {'name' =&gt; 'Yamada', 'old' =&gt; 28}<br><br>    render :json =&gt; personal<br>  end<br><br><br>XMLだとこんな感じ<br>  def index<br>    personal = {'name' =&gt; 'Yamada', 'old' =&gt; 28}<br><br>    render :xml =&gt; personal<br>  end<br><br><br><br>明示的に切り替えた場合に分岐させたい場合<br>こんな感じ<br>  def index<br>    @personal = {'name' =&gt; 'Yamada', 'old' =&gt; 28}<br><br>    respond_to do |format|<br>      format.html<br>      format.json {render :json =&gt; @personal}<br>      format.xml  {render :xml =&gt; @personal}<br>    end<br>  end<br><br><br><br>ビューはこんな感じ<br><p><br>名前:&lt;%= @personal["name"] %&gt;<br><br>年齢:&lt;%= @personal["old"] %&gt;<br></p><br><br><br>パラメータの取得<br>Railsでパラメータを取得したい場合は<br>コントローラにparams[:パラメータ名]<br><br>route.rbに<br>Sample::Application.routes.draw do<br>  get "travels/show/:id" =&gt; "travels#show"<br>end<br><br><br>フォームからコントローラに値を渡す場合<br>route.rbは<br>post "travels/show" =&gt; "travels#show"<br>として<br><br>publicにpost.htmlを追加する<br>form内で、travelsコントローラのshowアクションに以下の入力欄の値を渡している感じ<br><br><br>パラメータでハッシュを渡す<br>ハッシュを渡す際には以下のようにする。<br>ハッシュを送る場合は、パラメータ名を指定していた部分でハッシュ名[キー名]を指定する<br><br>コントローラはこんな感じ<br>  def show<br>   travel = params[:travel]<br>   render :text =&gt; "旅行先 = #{params[:'dest']}, 人数 = #{params[:'num']}"<br>  end<br><br><br>パラメータを配列で渡す<br>post.htmlは<br>input typeのnameの部分を配列で定義する<br><br><br>controllerでは<br>  def show<br>   travel = params[:travel]<br>   render :text =&gt; "1:#{travel[0]}, 2:#{travel[1]}, 3:#{travel[2]}"<br>  end<br><br>こんな感じ<br><br><br><br>
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11536252197.html</link>
<pubDate>Thu, 23 May 2013 13:14:51 +0900</pubDate>
</item>
<item>
<title>VMware Tech Day 2013に行ってきます。</title>
<description>
<![CDATA[ 先週申し込んでいた、<a href="http://info.vmware.com/content/APAC_JP_ev_TD_Agenda?src=&amp;ossrc=&amp;elq=" target="_blank">VMware Tech Day 2013</a>に29日行ってきます<img src="https://stat.ameba.jp/blog/ucs/img/char/char2/314.gif" alt="馬"><br><br>一日中あるので結構楽しみ<img src="https://stat.ameba.jp/blog/ucs/img/char/char2/038.gif" alt="音譜"><img src="https://stat.ameba.jp/blog/ucs/img/char/char2/038.gif" alt="音譜"><img src="https://stat.ameba.jp/blog/ucs/img/char/char2/038.gif" alt="音譜"><img src="https://stat.ameba.jp/blog/ucs/img/char/char2/038.gif" alt="音譜"><img src="https://stat.ameba.jp/blog/ucs/img/char/char2/038.gif" alt="音譜">
]]>
</description>
<link>https://ameblo.jp/tokaigawa/entry-11535918571.html</link>
<pubDate>Wed, 22 May 2013 23:03:06 +0900</pubDate>
</item>
</channel>
</rss>
