2012年12月27日木曜日

devstackを用いてOpenStackを導入してからライブマイグレーションを行いたい その2

openstackでライブマイグレーションさせるためにいろいろやっていきます
openstackはdevstackを用いてインストールした。

参考URLは下記
http://docs.openstack.org/trunk/openstack-compute/admin/content/configuring-migrations.html

追加参考文献
http://blog.csdn.net/xjtuse_mal/article/details/7899511

コントローラ側

$sudo apt-get -y install nfs-kernel-server

$sudo vim /etc/exports
(e.g)

NOVA-INST-DIR/instances HostA/255.255.0.0(rw,sync,fsid=0,no_root_squash)

/opt/stack/data/nova/instances /255.255.255.0(rw,sync,fsid=0,no_root_squash)

$ sudo /etc/init.d/nfs-kernel-server restart
$ sudo /etc/init.d/idmapd restart

ノード側
$sudo apt-get -y install nfs-common

$sudo vim /etc/fstab

HostA:/ /opt/stack/data/nova/instances/ nfs4 defaults 0 0

$sudo mount -a -v


コントローラとノードどちらともで

/etc/libvirt/libvirtd.conf:

before : #listen_tls = 0
after : listen_tls = 0

before : #listen_tcp = 1
after : listen_tcp = 1

add: auth_tcp = "none"

/etc/default/libvirt-bin

before :libvirtd_opts=" -d"
after :libvirtd_opts=" -d -l"

$ sudo stop libvirt-bin && sudo start libvirt-bin
$ ps -ef | grep libvirt

root 1145 1 0 Nov27 ? 00:00:03 /usr/sbin/libvirtd -d -l


live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE
live_migration_uri=qemu+tcp://%s/system


....umakuikanai

追記!!

追加参考文献を参考に行ったらうまくいくようになった。
やったね!!






2012年12月20日木曜日

その3

openstackのその3

ノードを追加する

localrcは

HOST_IP=192.168.11.6
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=admintoken-2012
ENABLED_SERVICES=n-cpu,rabbit,g-api,quantum,q-agt
ENABLE_TENANT_TUNNELS=True
SERVICE_HOST=192.168.11.5
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
Q_HOST=$SERVICE_HOST
IPとパスは臨機応変に




インスタンスを作成

インストールでけた。

参考URL

http://networkstatic.net/openstack-folsom-quantum-devstack-installation-tutorial/


wget https://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 < precise-server-cloudimg-amd64-disk1.img

をやって、イメージを登録するお

その後、Horizonにアクセスし
セキュリティグループを編集(defaultがあるのでそいつを)
tcp 22 22
icmp -1 -1

sshとpingを通せるようにポートを開放してるのかな

で、インスタンスを作成。登録したイメージで作成しましょう。

キーペアを作ってダウンロード。openstackのコントローラが入ってるOSに入れておきましょう。
そして、そのサーバから
ssh -i ubuntu@
で、アクセスできるはずだけど、できないかも、、、

とりあえず、フローティングipなるものを作成しないといけないらしい。
フローティングipとは、外部にアクセスするために必要なもの。

自分がわかる程度に適当に書きます。
GUIでフローティングipを割り当てる。その後

source openrc admin admin
nova list
quantum port-list -- --device_id
quantum floatingip-list
quantum floatingip-associate

これでイケる

source openrc admin admin

にしてるけど、なぜかテナントをdemoの方で上記のものを作成しないとつながらないT_T

理由がわからない。

とりあえず、sshでインスタンスにアクセスできました。
次は、ライブマイグレーションを目指す。




devstackを用いてOpenStackを導入してからライブマイグレーションを行いたい その1

devstackを用いてOpenStackを導入してからライブマイグレーションを行いたいと考えています。

OpenStackについて理解できていないところは数多く。自分のミスなのかバグなのかもわかりません。しかし、頑張ります。なぜなら、これができないと卒業できないから!!

マイグレーションを行うまでの道程を書いて行きます。

まず、devstackを用いてOpenStackをインストールします。
自分で導入するにはハードルが高すぎます。

参考URLは
https://github.com/irixjp/openstack-study-9/wiki/%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99

コントローラーのlocalrcは

HOST_IP=192.168.13.2

ADMIN_PASSWORD=stacktera
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=admintoken

disable_service n-net
disable_service n-obj
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3

ENABLE_TENANT_TUNNELS=True

FIXED_RANGE=192.168.4.0/24
NETWORK_GATEWAY=192.168.4.254
FLOATING_RANGE=192.168.13.128/25
MULTI_HOST=True

SYSLOG=True

LOGFILE=/opt/stack/logs/stack.sh.log

FLAT_INTERFACE=eth0
FIXED_NETWORK_SIZE=256
PUBLIC_INTERFACE=eth0

#OFFLINE=True
NOVA_BRANCH=stable/folsom
GLANCE_BRANCH=stable/folsom
KEYSTONE_BRANCH=stable/folsom
HORIZON_BRANCH=stable/folsom
CINDER_BRANCH=stable/folsom
QUANTUM_BRANCH=stable/folsom

ノード側のlocalrcは


HOST_IP=192.168.0.112

ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=admintoken-2012
FLAT_INTERFACE=eth0
FIXED_RANGE=192.168.4.0/24
FIXED_NETWORK_SIZE=256
FLOATING_RANGE=192.168.13.128/25
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log

ENABLED_SERVICES=n-cpu,rabbit,g-api,quantum,q-agt
ENABLE_TENANT_TUNNELS=True

SERVICE_HOST=192.168.0.112
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
Q_HOST=$SERVICE_HOST


導入できました。




$ nova-manage service list
Binary           Host                                 Zone             Status     State Updated_At
nova-compute     node01                              nova             enabled    :-)   2012-12-27 14:15:09
nova-cert        controller                              nova             enabled    :-)   2012-12-28 05:47:31
nova-compute     controller                              nova             enabled    :-)   2012-12-27 14:14:22
nova-scheduler   controller                              nova             enabled    :-)   2012-12-28 05:47:31
nova-consoleauth controller                              nova             enabled    :-)   2012-12-28 05:47:30










2012年11月7日水曜日

データ保存 その2

つづき ちょこちょこと訂正を加えた。とりあえずUISegmentedControll(_timeSegmanet)を加えた。

- (void)save{
    
    NSMutableArray *myMuArray = [NSMutableArray array];
    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
    
    // 保存されているデータがあるかないか判断
    if ([[[NSUserDefaults standardUserDefaults] arrayForKey:@"ARRAY"] count] > 0) {  // あれば呼び込む
        NSArray *array = [[NSUserDefaults standardUserDefaults] arrayForKey:@"ARRAY"];
        myMuArray = [[NSMutableArray alloc] initWithArray:array];
        NSLog(@"myMuArray is %@",[myMuArray description]);
    }
    
    //日時の書式を作成
    NSDate *nowDate = [NSDate date];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy/MM/dd "];
    
    //日付型をString型にする
    NSString *dateString = [formatter stringFromDate:nowDate];

    if (_timeSegment.selectedSegmentIndex == 0) {
        [dict setValue:@"ASA" forKey:@"TIME"];

    }else if(_timeSegment.selectedSegmentIndex == 1){
        [dict setValue:@"HIRU" forKey:@"TIME"];
        
    }else if(_timeSegment.selectedSegmentIndex == 2){
        [dict setValue:@"YORU" forKey:@"TIME"];
    }
    [dict setValue:dateString forKey:@"DATE"];

    [dict setValue:hozontfd.text forKey:@"HINMOKU"];
    
    // 新しい値を配列に追加
    [myMuArray addObject:dict];
    // 値を保存
    [[NSUserDefaults standardUserDefaults] setObject:myMuArray forKey:@"ARRAY"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
myMuArrayの出力結果は、
myMuArray is (
         {
        DATE = "2012/11/07 ";
        HINMOKU = 77;
        TIME = ASA;
    },
        {
        DATE = "2012/11/07 ";
        HINMOKU = 7;
        TIME = ASA;
    },
        {
        DATE = "2012/11/07 ";
        HINMOKU = 733;
        TIME = YORU;
    }
)
出力結果の「\U5e」なんだ?と思ったら「年[スペース]」か。これはスラッシュでいいなぁと思い修正。 出力結果の構造的に理想とは違うのかな?

2012年11月6日火曜日

データ保存について

NSDictionaryとNSUserDefaultを使用してデータを保存します。

 目標

①日付、②品目数(朝or昼or夜)をセルのカスタマイズを使って表示させることです。
1、dictionary、NSUserDefaultsを使って
①日付
②品目数
③品目数
④品目数
を格納、保存
です。 現在の状況は、とりあえずコードベタ張りするとこんな感じ。
//seguの処理
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // 遷移先を取得
    if ([[segue identifier] isEqualToString:@"ponSegue"]) {
        
        TableViewController *tableViewController = segue.destinationViewController;
        
        //追加 日時の表記を変える
        //日時の書式を作成
        nowDate = [NSDate date];
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"yyyy年 MM/dd "];  //HH:mm
        //日付型をString型にする
        NSString *dateString = [formatter stringFromDate:nowDate];
        
        // NSMutableArrayの生成
        NSMutableArray* myMuArray = [NSMutableArray array];
        //日付を入れる配列用意
        NSMutableArray* myDateString = [NSMutableArray array];
        
        
        // 保存されているデータがあるかないか判断
        if ([[[NSUserDefaults standardUserDefaults]
              arrayForKey:@"ARRAY"] count] > 0) {  // あれば呼び込む
            
            //NSarrayで取り出す (これじゃないとNSUserDefaultsから取り出せない)
            NSArray *array = [[NSUserDefaults standardUserDefaults]
                              arrayForKey:@"ARRAY"];
            
            //NSMutableArrayに格納
            myMuArray = [[NSMutableArray alloc] initWithArray:array];
            NSLog(@"myMuArray is %@",[myMuArray description]);
        }
        
        // 新しい値を配列に追加
        [myDateString addObject:dateString];
        [myMuArray addObject:hozontfd.text];
        
        //大きな配列全体の保存
        saveArray = [[NSMutableArray alloc] initWithCapacity:1];
        
        //dictionaryにそれぞれの要素を入れる
        NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:1];
        
        [dict setObject:myDateString forKey:@"Date"];
        [dict setObject:myMuArray forKey:@"MuArray"];
        //これでまとめて保存
        [saveArray addObject:dict];
        // 値を保存
        [[NSUserDefaults standardUserDefaults] setObject:saveArray forKey:@"ARRAY"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        
        tableViewController.myMuArray2 =saveArray;
        tableViewController.hinmoku = myMuArray;
        tableViewController.hiduke = myDateString;
        
    }
    
}

ふむ、、、おかしいですねー。 出力結果が、(朝1日分のみですが^^;;)
        {
        Date =         (
            "2012\U5e74 11/06 "
        );
        MuArray =         (
            12
        );
    }
)
思うようなデータが入ってないっすねー。 理想は、
{
Date = "日付"
 Asa = "数字"
 Hiru = "数字"
 Yoru = "数字"
},{
Date = "日付"
 Asa = "数字"
 Hiru = "数字"
 Yoru = "数字"
}

ですかねー。違うかもしれんけど^^;; 長くなったので次回

nested push animation can result in corrupted navigation bar


nested push animation can result in corrupted navigation bar

Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

Unbalanced calls to begin/end appearance transitions for .

このエラーに引っかかった。 まぁそのままんまですが、解決するまですごく時間かかった。 こいつとかみたらいんですかねー。 で、どんな感じで書いてたかと

//ボタンを押したときの処理
- (IBAction)btnact:(id)sender {
     //seguのIDを設定 (送り先のViewに値を渡すため・・・)
    [self performSegueWithIdentifier:@"ponSegue" sender:self];
}

//seguの処理
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // 遷移先を取得
    if ([[segue identifier] isEqualToString:@"ponSegue"]) {
    }    
}

こういう感じです。違和感なかったです(汗)もちろん、storyboardの方も設定してますよ。 解決方法はというと、

//ボタンを押したときの処理
- (IBAction)btnact:(id)sender {

// ここいらない
}

//seguの処理
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // 遷移先を取得
    if ([[segue identifier] isEqualToString:@"ponSegue"]) {
    }    
}

以上でーす。 おそらくボタンからの画面遷移をstoryboardで設定してたからでしょうね(伝わってる??)

2012年11月5日月曜日


とりあえず簡単なのでデータをNSUserdDefaultsで保存する。

参考URLは下記
NSUserDefaultsはどこまで保存できるかチェック(1)
http://iphone-dev.g.hatena.ne.jp/tokorom/20090520/1242789479

画面遷移するときに保存させればいいかなと
//seguの処理 
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // 遷移先を取得     if ([[segue identifier] isEqualToString:@"ponSegue"]) {      
        TableViewController *tableViewController = segue.destinationViewController;
        tableViewController.kazu = hozontfd.text//テキストフィールドに書かれた値をkazu       // tableViewController.myMuArray = array;     // NSMutableArrayの生成         NSMutableArray* myMuArray = [NSMutableArray array];         // 保存されているデータがあるかないか判断
        if ([[[NSUserDefaults standardUserDefaults] arrayForKey:@"ARRAY"] count] == 0) {             // あれば呼び込む            NSArray *array = [[NSUserDefaults standardUserDefaults] arrayForKey:@"ARRAY"];            // NSMutableArrayに格納            myMuArray = [[NSMutableArray alloc] initWithArray:array];   NSLog(@"myMuArray is %@",[myMuArray description]);
        }
   
        // 新しい値を配列に追加        [myMuArray addObject:hozontfd.text] // 値を保存        [[NSUserDefaults standardUserDefaults] setObject:myMuArray forKey:@"ARRAY"];         [[NSUserDefaults standardUserDefaults] synchronize];   
    }
  
}


注意しなければいけないところは、
NSUserDefaultsではNSMutableArrayを取り出せないこと。そもそもこんな感じで活用することを想定していないからかなー。
取り出そうとするとこんなかんじのエラーが、、、
mutating method sent to immutable object

だからNSArrayで呼び込んで、NSMutableArrayに格納し直すという手間がかかる。


2012年10月30日火曜日

keystone-manage db_sync

エラー


Traceback (most recent call last):
  File "/usr/bin/keystone-manage", line 28, in
    cli.main(argv=sys.argv, config_files=config_files)
  File "/usr/lib/python2.7/dist-packages/keystone/cli.py", line 148, in main
    return run(cmd, (args[:1] + args[2:]))
  File "/usr/lib/python2.7/dist-packages/keystone/cli.py", line 134, in run
    return CMDS[cmd](argv=args).run()
  File "/usr/lib/python2.7/dist-packages/keystone/cli.py", line 36, in run
    return self.main()
  File "/usr/lib/python2.7/dist-packages/keystone/cli.py", line 55, in main
    driver = utils.import_object(getattr(CONF, k).driver)
  File "/usr/lib/python2.7/dist-packages/keystone/common/utils.py", line 60, in import_object
    __import__(import_str)
TypeError: __import__() argument 1 must be string, not None

2012年10月29日月曜日

メモ

openstackについて 

サーバー管理ツール「Juju」向けのWeb UI「Juju GUI」、OpenStackクラウドの実装や管理にも対応 - SourceForge.JP Magazine : オープンソースの話題満載 

memcached 

なにこれ? サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました

rabbitMQ 

apt-get でインスコできなかったので wget でインスコする。後は下記を試す。 

erlang-noxってのはなんだ。並行処理指向のerlangってのはプログラミング言語のことらしいな。

/var/cache/apt/archivesにパッケージファイルたちがあるのかー。勉強になります。

ERROR: epmd error for host "149": timeout (timed out establishing tcp connection) 

127.0.0.1 yourhostnameで解決。これで本当にいいのだろうか、、、

keystone-manage db_syncでエラー発生

メモ:

sheepdogって、再起動したら共有したディレクトリ自体がさよならしてしまうのね。 中のvdiだけがさよならすると思っててめっちゃハマったわw

2012年10月15日月曜日

Rubyを勉強する

というわけで、dotcloudかherokuで悩んだんだけど
dotcloudはpythonでherokuはRubyみたいな感じだったのでherokuに

別にその言語だけ使えるわけではないけど。


2012年9月10日月曜日

devstackで

ちょっとした理由でOpenStackを導入しないと行けないんですが、
難しいT_T

自分の知識のなさ。これまでの大学生活で学んだことを全て忘れとる^^;;

というわけで、少し勉強もしつつ導入しようとしてるんですが、一向に光がみえん。

そんな中、色々調べてるとdevstackを言うものがあるらしいので少し試してみたら動きました。

しかし、1台でしか動かん。。。クラウドの意味ねー。

てな感じでもう少し頑張ります。

ドキュメントが英語だとヤル気が…(そんなこと言ってる場合じゃねー)

2012年9月7日金曜日

MacBookPro13購入


現在導入したアプリ
========
google chrome
google日本語入力
夜フクロウ
Xcode
coda2
iterm2
evernote
dropbox
alfred
clamxav
xtrafinder
skitch
homebrew
cotediter
eclipse
==========
導入するアプリメモ
hackapp
appcleaner
skype
eve
tex
pogoplug
magican
rubyインストールするやつ名前忘れた
========
todo
vimのカスタマイズ



基本的に開発環境の整備をしっかりしたい。






2012年9月5日水曜日

ルーター変えた

家のルーター変えた。

今までのは先輩のお下がりだったからな。
今までの 
変更したの
いやー嬉しいな。下りしか載せてないけど当然上りも早くなった。

買ったのは価格.comで上位に入ってた

AirStation NFINITI HighPower Giga WZR-HP-G302H/N

http://kakaku.com/item/K0000395040/

やはりPCまわりのものは最新のものにしておくのがストレスがなくていいんじゃないかと思う。

あと、なぜルータ変えようかと思ったかというとpogoplug使ってるからアクセス早くなるんじゃね??(しらないけど)となんとなく思ったから
もう一つは、新しいMBPを購入したから












2012年9月1日土曜日

Androidアプリを作る。

真剣に取り組んでいたのがObjective-Cしかない。

Java頑張る。
難しいけど、けっこうたのしいし理解が深まる。