【OpenStackチャレンジ】 第24回 Cinder環境構築編

2016.9. 9


はじめに

photo-1465284958051-1353268c077d.jpg

今回は、KeystoneSwiftGlanceに続けて、OpenStackのコアコンポーネントの1つであるCinderを紹介したいと思います。
以前紹介したSwiftは、OpenStackに分散オブジェクトストレージを提供していました。
それに対してCinderは、仮想マシンインスタンスがディスクドライブとして認識できるブロックストレージを提供します。
Cinderが仮想マシンに提供するブロックストレージは、Novaが仮想マシンに提供する一時的なブロックストレージとは異なり、永続的です。

Cinderの構成図

以前、KeystoneとGlanceをインストールした状態(【OpenStackチャレンジ】 第22回 Glance環境構築編)のマシンに、(Liberty版)OpenStack インストールガイド Ubuntu 14.04 (LTS)版 - Block Storage サービスを参考にしてインストールを進めていきます。
Cinderの構成図は以下のようになります。CININS-092.PNG

Cinderが使用するハードディスクは、VirtualBoxの仮想ハードディスクで作成し、以下のようになります。cinder_vb_2.png

仮想ハードディスクを準備しよう

VirtualBoxに仮想ハードディスクを増設しましょう。
仮想マシン(今回は「Ubuntu-Server-14043-Cinder」という名称です)の設定の中にある「ストレージ」をクリックします。
「コントローラ SATA」をクリックし、赤枠部分のアイコンをクリックします。CININS-012.PNG
「新規ディスクの作成」をクリックします。CININS-013.PNG
「VHD(Virtual Hard Disk)」を選択し、「次へ」をクリックします。CININS-014.PNG
「可変サイズ」を選択し、「次へ」をクリックします。CININS-015.PNG
ハードディスクの名前とサイズはデフォルトのままで、「次へ」をクリックします。CININS-016.PNG
以下のように、仮想ハードディスクが作成されました。CININS-017.PNG

仮想マシンを起動させます。
追加されたハードディスクが認識されていることを確認します。
$ dmesg | grep sd | grep "logical blocks"

[    2.630372] sd 2:0:0:0: [sda] 426743296 512-byte logical blocks: (218 GB/203 GiB)
[    2.986673] sd 3:0:0:0: [sdb] 16777216 512-byte logical blocks: (8.58 GB/8.00 GiB)

これで、ハードディスクの準備は終わりです。

Cinderをインストールしよう

まず、システムをアップデートをしましょう!
$ sudo apt-get update
$ sudo apt-get dist-upgrade

データベースクライアントを使用して、データベースサーバーに root ユーザーとして接続します。
その後Cinderのデータベースを作成し、アクセス権を付与します。
パスワード入力を求められるので、今回は全てのパスワードをubuntuと入力します。
$ mysql -u root -p << EOF
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'ubuntu';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'ubuntu';
EOF

Enter password: 


作成したCinderのデータベースにログインし、データベースの閲覧が可能であることを確認します。

$ mysql -u cinder -p
Enter password:ubuntu
MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| cinder             |
+--------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]> quit

Bye

管理者用の環境設定ファイルを読み込みます。
$ source admin-openrc.sh

ubuntu@controller ~(admin)$

cinderユーザーを作成します。
$ openstack user create --password-prompt cinder

User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | default                          |
| enabled   | True                             |
| id        | d10af0398e344bcc9165a44368d4706a |
| name      | cinder                           |
+-----------+----------------------------------+

cinderユーザーが作成されたか確認します。
$ openstack user list

+----------------------------------+--------+
| ID                               | Name   |
+----------------------------------+--------+
| a5423dbeafec4d3eb38ae2da887a36b8 | glance |
| d10af0398e344bcc9165a44368d4706a | cinder |
| ea4f34d6b33b466692850f73541b514e | admin  |
+----------------------------------+--------+

Block Storage サービスには二つのサービスエンティティーが必要なので、cinder、およびcinderv2を作成します。
$ openstack service create --name cinder --description "OpenStack Block Storage" volume

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | a127b5e0eb7c40e18c5326bef44514a0 |
| name        | cinder                           |
| type        | volume                           |
+-------------+----------------------------------+

$ openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | d682c140cb6e4d509842f89b30d9aded |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+

cinder、およびcinderv2サービスエンティティーが作成されたか確認します。
$ openstack service show cinder

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | a127b5e0eb7c40e18c5326bef44514a0 |
| name        | cinder                           |
| type        | volume                           |
+-------------+----------------------------------+

$ openstack service show cinderv2

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | d682c140cb6e4d509842f89b30d9aded |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+

Block Storage サービスはそれぞれのサービスエンティティーにエンドポイントが必要とされるので二つAPIエンドポイントを作成します。
リージョンは、Keystoneをインストールしたときに設定したリージョン「RegionOne」を指定します。
$ openstack endpoint create --region RegionOne volume public http://controller:8776/v1/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 88d35d2e98894445ac718ca881c1be86        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a127b5e0eb7c40e18c5326bef44514a0        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+

$ openstack endpoint create --region RegionOne volume internal http://controller:8776/v1/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | d17acb7f7df544728b7c5f74785bb78f        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a127b5e0eb7c40e18c5326bef44514a0        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+

$ openstack endpoint create --region RegionOne volume admin http://controller:8776/v1/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | e972810edd114945ae980831dc7f4051        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a127b5e0eb7c40e18c5326bef44514a0        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+

一つ目のエンドポイントが作成されたか確認します。
$ openstack endpoint list --service cinder

+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                     |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
| 88d35d2e98894445ac718ca881c1be86 | RegionOne | cinder       | volume       | True    | public    | http://controller:8776/v1/%(tenant_id)s |
| d17acb7f7df544728b7c5f74785bb78f | RegionOne | cinder       | volume       | True    | internal  | http://controller:8776/v1/%(tenant_id)s |
| e972810edd114945ae980831dc7f4051 | RegionOne | cinder       | volume       | True    | admin     | http://controller:8776/v1/%(tenant_id)s |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+

二つ目のエンドポイントを作成します。
リージョンは、上記と同様にKeystoneをインストールしたときに設定したリージョン「RegionOne」を指定します。
$ openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 0de33db9f0a140b682c5794adf724d5e        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | d682c140cb6e4d509842f89b30d9aded        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+

$ openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 62172d636b384a1eb27121ede188ed98        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | d682c140cb6e4d509842f89b30d9aded        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+

$ openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(tenant_id\)s

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 39fc85c00cc64223aaeab25e04038a74        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | d682c140cb6e4d509842f89b30d9aded        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+

二つ目のエンドポイント作成されたか確認します。
$ openstack endpoint list --service cinderv2

+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                     |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
| 0de33db9f0a140b682c5794adf724d5e | RegionOne | cinderv2     | volumev2     | True    | public    | http://controller:8776/v2/%(tenant_id)s |
| 39fc85c00cc64223aaeab25e04038a74 | RegionOne | cinderv2     | volumev2     | True    | admin     | http://controller:8776/v2/%(tenant_id)s |
| 62172d636b384a1eb27121ede188ed98 | RegionOne | cinderv2     | volumev2     | True    | internal  | http://controller:8776/v2/%(tenant_id)s |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+

Cinderと必要なパッケージをインストールします。
$ sudo apt-get install -y lvm2 cinder-api cinder-scheduler cinder-volume python-mysqldb python-cinderclient

Cinderを設定しよう

cinder.confの設定を行います。
$ sudo vi /etc/cinder/cinder.conf

[DEFAULT]
...
#DEBUGレベルのロギングを有効にする。
debug = True
#冗長ロギングを有効にする。
verbose = True
#認証サービスへのアクセス方法をKeystoneに設定する。
auth_strategy = keystone
#lock_path = /var/lock/cinder

#使用するAMQPクライアントを設定する。
rpc_backend = rabbit
#コントローラノードのIPアドレスを設定する。
my_ip = 10.0.0.101
#バックエンド名を設定する。
enabled_backends = lvm
#glance_host = controller

[oslo_messaging_rabbit]
#Rabbitサーバーのホスト名を設定する。
rabbit_host = controller
#Rabbitサーバーへアクセスするユーザー名を設定する。
rabbit_userid = openstack
#Rabbitサーバーへアクセスするパスワードを設定する。
rabbit_password = ubuntu

[oslo_concurrency]
#ロックパスを設定する。
lock_path = /var/lib/cinder/tmp

[database]
#データベースのアクセス方法を設定する。
connection = mysql+pymysql://cinder:ubuntu@controller/cinder

[keystone_authtoken]
#Keystoneサービス用エンドポイントを設定する。
auth_uri = http://controller:5000
#Keystone管理用エンドポイントを設定する。
auth_url = http://controller:35357
#パスワード認証に設定する。
auth_plugin = password
#KeystoneのプロジェクトドメインIDを設定する。
project_domain_id = default
#KeystoneのユーザードメインIDを設定する。
user_domain_id = default
#Keystoneのプロジェクト名を設定する。
project_name = service
#Keystoneへアクセスするユーザー名を設定する。
username = cinder
#Keystoneへアクセスするパスワードを設定する。
password = ubuntu

[lvm]
#LVMドライバ用を設定する。
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
#ボリュームグループを設定する。
volume_group = cinder-volumes
#iSCSIプロトコルを設定する。
iscsi_protocol = iscsi
#適切なiSCSIサービスを設定する。
iscsi_helper = tgtadm

次のコマンドを実行して正しく設定を行ったか確認します。
$ sudo cat /etc/cinder/cinder.conf | grep -v "^\s*$" | grep -v "^\s*#"

[DEFAULT]
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_confg = /etc/cinder/api-paste.ini
iscsi_helper = tgtadm
volume_name_template = volume-%s
volume_group = cinder-volumes
debug = True
verbose = True
auth_strategy = keystone
state_path = /var/lib/cinder
volumes_dir = /var/lib/cinder/volumes
rpc_backend = rabbit
my_ip = 10.0.0.101
enabled_backends = lvm
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = ubuntu
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[database]
connection = mysql+pymysql://cinder:ubuntu@controller/cinder
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = ubuntu
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = tgtadm

データベースを初期化します。
$ sudo su -s /bin/sh -c "cinder-manage db sync" cinder
以下のように表示されれば、正常です。

2016-08-18 14:02:24.046 2808 INFO migrate.versioning.api [-] 50 -> 51... 
2016-08-18 14:02:24.251 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:24.251 2808 INFO migrate.versioning.api [-] 51 -> 52... 
2016-08-18 14:02:24.416 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:24.416 2808 INFO migrate.versioning.api [-] 52 -> 53... 
2016-08-18 14:02:24.545 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:24.545 2808 INFO migrate.versioning.api [-] 53 -> 54... 
2016-08-18 14:02:24.688 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:24.688 2808 INFO migrate.versioning.api [-] 54 -> 55... 
2016-08-18 14:02:24.917 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:24.917 2808 INFO migrate.versioning.api [-] 55 -> 56... 
2016-08-18 14:02:24.927 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:24.927 2808 INFO migrate.versioning.api [-] 56 -> 57... 
2016-08-18 14:02:25.007 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:25.007 2808 INFO migrate.versioning.api [-] 57 -> 58... 
2016-08-18 14:02:25.024 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:25.025 2808 INFO migrate.versioning.api [-] 58 -> 59... 
2016-08-18 14:02:25.036 2808 INFO migrate.versioning.api [-] done
2016-08-18 14:02:25.036 2808 INFO migrate.versioning.api [-] 59 -> 60... 
2016-08-18 14:02:25.049 2808 INFO migrate.versioning.api [-] done

Cinderの設定を反映させるため、Cinderを再起動します。
$ sudo service cinder-scheduler restart

cinder-scheduler stop/waiting
cinder-scheduler start/running, process 2841

$ sudo service cinder-api restart

cinder-api stop/waiting
cinder-api start/running, process 2871

エラーが起きていないことをログで確認します。
$ tailf /var/log/cinder/cinder-scheduler.log

2016-08-18 14:03:06.595 2841 DEBUG oslo_service.service [req-5691f0f8-2de9-431b-a7df-ae006b3251b3 - - - - -] ******************************************************************************** log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2235
2016-08-18 14:03:06.596 2841 INFO cinder.service [-] Starting cinder-scheduler node (version 7.0.2)
2016-08-18 14:03:06.600 2841 DEBUG oslo_db.sqlalchemy.engines [req-b8ab7ad8-fff1-4cc6-942f-aed1a46947d4 - - - - -] MySQL server mode set to STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION _check_effective_sql_mode /usr/lib/python2.7/dist-packages/oslo_db/sqlalchemy/engines.py:256
2016-08-18 14:03:06.616 2841 DEBUG cinder.service [req-b8ab7ad8-fff1-4cc6-942f-aed1a46947d4 - - - - -] Creating RPC server for service cinder-scheduler start /usr/lib/python2.7/dist-packages/cinder/service.py:155
2016-08-18 14:03:06.626 2841 DEBUG oslo_messaging._drivers.amqp [req-b8ab7ad8-fff1-4cc6-942f-aed1a46947d4 - - - - -] Pool creating new connection create /usr/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqp.py:103
2016-08-18 14:03:06.630 2841 INFO oslo.messaging._drivers.impl_rabbit [req-b8ab7ad8-fff1-4cc6-942f-aed1a46947d4 - - - - -] Connecting to AMQP server on controller:5672
2016-08-18 14:03:06.641 2841 INFO oslo.messaging._drivers.impl_rabbit [req-b8ab7ad8-fff1-4cc6-942f-aed1a46947d4 - - - - -] Connected to AMQP server on controller:5672
2016-08-18 14:03:06.654 2841 DEBUG oslo_messaging._drivers.amqp [req-b1a52cb1-9d1f-4cf3-afdd-4a5646eb1e26 - - - - -] Pool creating new connection create /usr/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqp.py:103
2016-08-18 14:03:06.656 2841 INFO oslo.messaging._drivers.impl_rabbit [req-b1a52cb1-9d1f-4cf3-afdd-4a5646eb1e26 - - - - -] Connecting to AMQP server on controller:5672
2016-08-18 14:03:06.666 2841 INFO oslo.messaging._drivers.impl_rabbit [req-b1a52cb1-9d1f-4cf3-afdd-4a5646eb1e26 - - - - -] Connected to AMQP server on controller:5672

$ tailf /var/log/cinder/cinder-api.log

2016-08-18 14:03:21.525 2871 DEBUG oslo_service.service [-] keystone_authtoken.user_domain_id = default log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.526 2871 DEBUG oslo_service.service [-] keystone_authtoken.user_domain_name = None log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.526 2871 DEBUG oslo_service.service [-] keystone_authtoken.user_id     = None log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.526 2871 DEBUG oslo_service.service [-] keystone_authtoken.username    = cinder log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.527 2871 DEBUG oslo_service.service [-] oslo_versionedobjects.fatal_exception_format_errors = False log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.527 2871 DEBUG oslo_service.service [-] oslo_policy.policy_default_rule = default log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.527 2871 DEBUG oslo_service.service [-] oslo_policy.policy_dirs        = ['policy.d'] log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.528 2871 DEBUG oslo_service.service [-] oslo_policy.policy_file        = policy.json log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.528 2871 DEBUG oslo_service.service [-] oslo_middleware.max_request_body_size = 114688 log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2233
2016-08-18 14:03:21.528 2871 DEBUG oslo_service.service [-] ******************************************************************************** log_opt_values /usr/lib/python2.7/dist-packages/oslo_config/cfg.py:2235

使用しないデータベースファイルを削除します。
$ sudo rm /var/lib/cinder/cinder.sqlite

仮想ハードディスクを使用して、Cinderストレージにしよう

上述した増設した仮想ハードディスクを使用します。
物理ボリュームを作成します。
$ sudo pvcreate /dev/sdb

  Physical volume "/dev/sdb" successfully created

作成した物理ボリュームを確認します。
$ sudo pvdisplay

  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               8.00 GiB 
  Allocatable           NO
  PE Size               4.00 MiB
  Total PE              2047
  Free PE               1791
  Allocated PE          256
  PV UUID               HX28dl-QxZ4-E3mm-yyEs-ui2x-8rRZ-PPmeHx

ボリュームグループを作成し、物理ボリュームを割り当てます。
$ sudo vgcreate cinder-volumes /dev/sdb

  Volume group "cinder-volumes" successfully created

作成したボリュームグループを確認します。
$ sudo vgdisplay

  --- Volume group ---
  VG Name               cinder-volumes
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               8.00 GiB
  PE Size               4.00 MiB
  Total PE              2047
  Alloc PE / Size       256 / 1.00 GiB
  Free  PE / Size       1791 / 7.00 GiB
  VG UUID               00bmwX-fwJJ-ZEmv-tvIm-aB2D-3cb2-bPUUwu

/etc/lvm/lvm.confを編集し、LVMデバイススキャン時にcinder-volumesボリュームグループが含まれるデバイスのみを許可するフィルターを設定します。
フィルター配列の各項目は、許可を意味する「a」か、拒否を意味する 「r」から始まり、デバイスは正規表現で設定します。

$ sudo vi /etc/lvm/lvm.conf

devices {
...
filter = [ "a/sdb/", "r/.*/"]
...

次のコマンドを実行して正しく設定を行ったか確認します。
$ sudo cat /etc/lvm/lvm.conf | grep filter | grep sdb

    filter = [ "a/sdb/","r/.*/" ]

Cinderストレージの設定を反映させるために、Cinder-Volumeのサービスを再起動します。
$ sudo service cinder-volume restart

cinder-volume stop/waiting
cinder-volume start/running, process 2673

iSCSIターゲットの設定を反映するためにtgtサービスを再起動します。
$ sudo service tgt restart

tgt stop/waiting
tgt start/running, process 2723

エラーが起きていないことをログで確認します。
$ tailf /var/log/cinder/cinder-volume.log

2016-08-18 14:25:25.252 2681 INFO oslo.messaging._drivers.impl_rabbit [req-58c19b33-b8c1-449a-a952-82b49db4097b - - - - -] Connecting to AMQP server on controller:5672
2016-08-18 14:25:25.264 2681 INFO oslo.messaging._drivers.impl_rabbit [req-58c19b33-b8c1-449a-a952-82b49db4097b - - - - -] Connected to AMQP server on controller:5672
2016-08-18 14:27:06.277 2681 DEBUG oslo_service.periodic_task [req-64ae7a92-f626-48fa-bafb-e112191a3bb1 - - - - -] Running periodic task VolumeManager._publish_service_capabilities run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-18 14:27:06.281 2681 DEBUG cinder.manager [req-64ae7a92-f626-48fa-bafb-e112191a3bb1 - - - - -] Notifying Schedulers of capabilities ... _publish_service_capabilities /usr/lib/python2.7/dist-packages/cinder/manager.py:156
2016-08-18 14:27:06.291 2681 DEBUG oslo_service.periodic_task [req-64ae7a92-f626-48fa-bafb-e112191a3bb1 - - - - -] Running periodic task VolumeManager._report_driver_status run_periodic_tasks /usr/lib/python2.7/dist-packages/oslo_service/periodic_task.py:213
2016-08-18 14:27:06.293 2681 DEBUG cinder.volume.drivers.lvm [req-64ae7a92-f626-48fa-bafb-e112191a3bb1 - - - - -] Updating volume stats _update_volume_stats /usr/lib/python2.7/dist-packages/cinder/volume/drivers/lvm.py:175
2016-08-18 14:27:06.296 2681 DEBUG oslo_concurrency.processutils [req-64ae7a92-f626-48fa-bafb-e112191a3bb1 - - - - -] Running cmd (subprocess): sudo cinder-rootwrap /etc/cinder/rootwrap.conf env LC_ALL=C vgs --noheadings --unit=g -o name,size,free,lv_count,uuid --separator : --nosuffix cinder-volumes execute /usr/lib/python2.7/dist-packages/oslo_concurrency/processutils.py:297
2016-08-18 14:27:06.361 2681 DEBUG oslo_concurrency.processutils [req-64ae7a92-f626-48fa-bafb-e112191a3bb1 - - - - -] CMD "sudo cinder-rootwrap /etc/cinder/rootwrap.conf env LC_ALL=C vgs --noheadings --unit=g -o name,size,free,lv_count,uuid --separator : --nosuffix cinder-volumes" returned: 0 in 0.066s execute /usr/lib/python2.7/dist-packages/oslo_concurrency/processutils.py:327
2016-08-18 14:27:06.364 2681 DEBUG oslo_concurrency.processutils [req-64ae7a92-f626-48fa-bafb-e112191a3bb1 - - - - -] Running cmd (subprocess): sudo cinder-rootwrap /etc/cinder/rootwrap.conf env LC_ALL=C lvs --noheadings --unit=g -o vg_name,name,size --nosuffix cinder-volumes execute /usr/lib/python2.7/dist-packages/oslo_concurrency/processutils.py:297
2016-08-18 14:27:06.428 2681 DEBUG oslo_concurrency.processutils [req-64ae7a92-f626-48fa-bafb-e112191a3bb1 - - - - -] CMD "sudo cinder-rootwrap /etc/cinder/rootwrap.conf env LC_ALL=C lvs --noheadings --unit=g -o vg_name,name,size --nosuffix cinder-volumes" returned: 0 in 0.064s execute /usr/lib/python2.7/dist-packages/oslo_concurrency/processutils.py:327

Cinderの動作確認しよう

管理者用の環境設定ファイルを読み込みます。
$ source admin-openrc.sh

ubuntu@controller:~$ source admin-openrc.sh
ubuntu@controller ~(admin)$ 

Cinderサービスの一覧を表示し、正常に動作していることを確認します。
$ cinder service-list

+------------------+----------------+------+---------+-------+----------------------------+-----------------+
|      Binary      |      Host      | Zone |  Status | State |         Updated_at         | Disabled Reason |
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler |   controller   | nova | enabled |   up  | 2016-08-18T05:29:38.000000 |        -        |
|  cinder-volume   | controller@lvm | nova | enabled |   up  | 2016-08-18T05:29:45.000000 |        -        |
+------------------+----------------+------+---------+-------+----------------------------+-----------------+

サイズをGB単位で指定し、Cinderのボリュームを作成します。
$ openstack volume create --size 1 volume

+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| created_at          | 2016-09-08T01:02:34.191729           |
| display_description | None                                 |
| display_name        | volume                               |
| encrypted           | False                                |
| id                  | 782e0de1-214e-4655-bf10-5cd21bf14cd7 |
| multiattach         | false                                |
| properties          |                                      |
| size                | 1                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
+---------------------+--------------------------------------+

Cinderのボリュームが作成されていることとCinderのボリュームのIDを確認します。
$ openstack volume list -c "Display Name" -c "Size" -c "ID"

+--------------------------------------+--------------+------+
| ID                                   | Display Name | Size |
+--------------------------------------+--------------+------+
| 782e0de1-214e-4655-bf10-5cd21bf14cd7 | volume       |    1 |
+--------------------------------------+--------------+------+

作成した論理ボリュームを確認します。

$ sudo lvdisplay

  --- Logical volume ---
  LV Path                /dev/cinder-volumes/volume-782e0de1-214e-4655-bf10-5cd21bf14cd7
  LV Name                volume-782e0de1-214e-4655-bf10-5cd21bf14cd7
  VG Name                cinder-volumes
  LV UUID                I6450c-d9aH-Z2H8-I3vt-tfEg-T7y6-JmUSYw
  LV Write Access        read/write
  LV Creation host, time controller, 2016-09-08 10:02:34 +0900
  LV snapshot status     source of
                         _snapshot-7cc7141d-3073-44f2-8822-0043ac5b4ba0 [active]
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

論理ボリュームが使用可能になっています。

作成した論理ボリュームのスナップショットを取ってみましょう。
$ openstack snapshot create --name snapshot-1G volume

+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| created_at          | 2016-09-08T01:07:28.975257           |
| display_description | None                                 |
| display_name        | snapshot-1G                          |
| id                  | 7cc7141d-3073-44f2-8822-0043ac5b4ba0 |
| properties          |                                      |
| size                | 1                                    |
| status              | creating                             |
| volume_id           | 782e0de1-214e-4655-bf10-5cd21bf14cd7 |
+---------------------+--------------------------------------+

論理ボリュームを確認します。
$ sudo lvdisplay

  --- Logical volume ---
  LV Path                /dev/cinder-volumes/volume-782e0de1-214e-4655-bf10-5cd21bf14cd7
  LV Name                volume-782e0de1-214e-4655-bf10-5cd21bf14cd7
  VG Name                cinder-volumes
  LV UUID                I6450c-d9aH-Z2H8-I3vt-tfEg-T7y6-JmUSYw
  LV Write Access        read/write
  LV Creation host, time controller, 2016-09-08 10:02:34 +0900
  LV snapshot status     source of
                         _snapshot-7cc7141d-3073-44f2-8822-0043ac5b4ba0 [active]
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2
   
  --- Logical volume ---
  LV Path                /dev/cinder-volumes/_snapshot-7cc7141d-3073-44f2-8822-0043ac5b4ba0
  LV Name                _snapshot-7cc7141d-3073-44f2-8822-0043ac5b4ba0
  VG Name                cinder-volumes
  LV UUID                5cE7G3-gMkH-zcnp-Lio7-k68e-VyJc-MqYrMH
  LV Write Access        read/write
  LV Creation host, time controller, 2016-09-08 10:07:29 +0900
  LV snapshot status     active destination for volume-782e0de1-214e-4655-bf10-5cd21bf14cd7
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  COW-table size         1.00 GiB
  COW-table LE           256
  Allocated to snapshot  0.00%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:3

論理ボリュームのスナップショットを取ることができました。
CinderのボリュームのIDを確認します。
$ openstack snapshot list -c "Size" -c "ID"

+--------------------------------------+------+
| ID                                   | Size |
+--------------------------------------+------+
| 7cc7141d-3073-44f2-8822-0043ac5b4ba0 |    1 |
+--------------------------------------+------+

作成したスナップショットを削除してみましょう。
$ openstack snapshot delete 7cc7141d-3073-44f2-8822-0043ac5b4ba0

スナップショットのIDを確認します。
$ openstack snapshot list -c "Size" -c "ID"

ubuntu@controller ~(admin)$

スナップショットは削除できました。

Cinderのボリュームも削除できるか試してみましょう。
$ cinder delete 782e0de1-214e-4655-bf10-5cd21bf14cd7

Request to delete volume 782e0de1-214e-4655-bf10-5cd21bf14cd7 has been accepted.

CinderのボリュームのIDを確認します。
$ openstack volume list -c "Display Name" -c "Size" -c "ID"

ubuntu@controller ~(admin)$

Cinderのボリュームは削除できました。

ボリュームグループは残っています。

$ sudo vgdisplay

  --- Volume group ---
  VG Name               cinder-volumes
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               8.00 GiB
  PE Size               4.00 MiB
  Total PE              2047
  Alloc PE / Size       0 / 0
  Free  PE / Size       2047 / 8.00 GiB
  VG UUID               00bmwX-fwJJ-ZEmv-tvIm-aB2D-3cb2-bPUUwu

論理ボリュームは削除できました。
$ sudo lvdisplay

今度は、Glanceに登録されているイメージからボリュームを作成してみましょう。
まず、イメージIDを確認します。
$ openstack image list

+--------------------------------------+--------+
| ID                                   | Name   |
+--------------------------------------+--------+
| ef7484b2-6254-406e-9ba4-da372c65df8b | cirros |
+--------------------------------------+--------+

cirrosイメージからボリュームを作成します。
$ cinder create --name cirros-volume --image-id ef7484b2-6254-406e-9ba4-da372c65df8b 1

+---------------------------------------+--------------------------------------+
|                Property               |                Value                 |
+---------------------------------------+--------------------------------------+
|              attachments              |                  []                  |
|           availability_zone           |                 nova                 |
|                bootable               |                false                 |
|          consistencygroup_id          |                 None                 |
|               created_at              |      2016-09-08T04:18:29.000000      |
|              description              |                 None                 |
|               encrypted               |                False                 |
|                   id                  | 17a4e726-1b32-4863-8bf8-d2920fa8aad2 |
|                metadata               |                  {}                  |
|            migration_status           |                 None                 |
|              multiattach              |                False                 |
|                  name                 |            cirros-volume             |
|         os-vol-host-attr:host         |                 None                 |
|     os-vol-mig-status-attr:migstat    |                 None                 |
|     os-vol-mig-status-attr:name_id    |                 None                 |
|      os-vol-tenant-attr:tenant_id     |   8a6217d667f74710815352a3dabe9e24   |
|   os-volume-replication:driver_data   |                 None                 |
| os-volume-replication:extended_status |                 None                 |
|           replication_status          |               disabled               |
|                  size                 |                  1                   |
|              snapshot_id              |                 None                 |
|              source_volid             |                 None                 |
|                 status                |               creating               |
|                user_id                |   ea4f34d6b33b466692850f73541b514e   |
|              volume_type              |                 None                 |
+---------------------------------------+--------------------------------------+

CinderのボリュームのIDを確認します。
$ openstack volume list -c "Display Name" -c "Size" -c "ID"

+--------------------------------------+---------------+------+
| ID                                   | Display Name  | Size |
+--------------------------------------+---------------+------+
| 17a4e726-1b32-4863-8bf8-d2920fa8aad2 | cirros-volume |    1 |
+--------------------------------------+---------------+------+

cirrosイメージから作成した論理ボリュームを確認してみましょう。
$ sudo lvdisplay

  --- Logical volume ---
  LV Path                /dev/cinder-volumes/volume-17a4e726-1b32-4863-8bf8-d2920fa8aad2
  LV Name                volume-17a4e726-1b32-4863-8bf8-d2920fa8aad2
  VG Name                cinder-volumes
  LV UUID                3QfPsX-9mf7-3BVt-iZ8K-qcex-r6pW-PyJd5C
  LV Write Access        read/write
  LV Creation host, time controller, 2016-09-08 13:18:31 +0900
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

cirrosイメージから作成した論理ボリュームを削除してみましょう。
$ cinder delete 17a4e726-1b32-4863-8bf8-d2920fa8aad2

Request to delete volume 17a4e726-1b32-4863-8bf8-d2920fa8aad2 has been accepted.

cirrosイメージから作成した論理ボリュームのIDを確認します。
$ openstack volume list -c "Display Name" -c "Size" -c "ID"

ubuntu@controller ~(admin)$

cirrosイメージから作成した論理ボリュームは削除できました。

おわりに

Keystone、Swift、Glanceに引き続きでCinderの手動インストールを紹介しました。
Cinderを活用することによって、インスタンスの使用幅が広がると思います!
次回は、コアコンポーネントの1つNovaについてご紹介したいと思っています。

今回も最後までお付き合いを頂き、ありがとうございました。

文:河合 紀彦

photo-1461080639469-66d73688fb21.jpg

参考サイト

(Liberty版)OpenStack インストールガイド Ubuntu 14.04 (LTS)版 - Block Storage サービス

OpenStack構築手順Liberty版



OpenStackと同じカテゴリーの記事


OpenStack手動インストールと同じカテゴリーの記事



RSS
最近のエントリー
2017.4.21
【検証自動化】第6回 AT-CLabを使ってみる
2017.4.21
【OSSチャレンジ】第4回 Elasticsearch紹介
2017.4. 7
【OSC2017 Tokyo/Spring】OpenStackを宇宙で!?
2017.3.28
【OSSチャレンジ】 第3回 Bacula紹介:後編
2017.3. 9
【OpenStackチャレンジ】 第29回 Ocata紹介編
2017.2.24
【OSSチャレンジ】 第2回 Docker紹介編
2017.2.20
【OSSチャレンジ】 第1回 Bacula紹介:前編
2017.2. 1
【体験記】最後のフロンティア!? ~ミャンマー 体験記~
2017.1.18
【データベース】pgpool-IIによるDBサーバ負荷分散
2016.12.16
【ログ解析】第2回Splunkのログ解析
2016.12. 9
LPIC304 体験記
2016.11.19
【OSC2016 Tokyo/Fall】VRとOpenStackを連携
2016.11.11
【次世代通信技術】 第1回 5G入門編
2016.10.28
【ログ解析】第1回Splunkの紹介と起動
2016.10.21
【OpenStackチャレンジ】 第28回 Stackalytics登録編
2016.10.14
【OpenStackチャレンジ】 第27回 OpenStack Newton紹介編
2016.10. 7
【検証自動化】第5回 Selenium IDEで記録したテストをJenkinsのジョブから実行する ~PC一台でブラウザテストを自動化~【後編】
2016.9.30
【OpenStackチャレンジ】 第26回 Neutron環境構築編
2016.9.23
【いまさら聞けない!エンジニアの基本シリーズ】 第6回 きれいなログにするためのLinuxお作法
2016.9.16
【OpenStackチャレンジ】 第25回 Nova環境構築編
2016.9. 9
【OpenStackチャレンジ】 第24回 Cinder環境構築編
2016.9. 2
【OpenStackチャレンジ】 第23回 OpenStackコミュニティ~翻訳編
2016.8.26
【OpenStackチャレンジ】 第22回 Glance環境構築編
2016.8.19
【検証自動化】第4回 Selenium IDEでテストケースを記録・実行する ~PC一台でブラウザテストを自動化~【前編】
2016.8. 9
【OpenStackチャレンジ】 第21回 OpenStackコミュニティ 日本語翻訳チーム参加編
2016.8. 5
【OpenStackチャレンジ】 第20回 構成管理ツール「Ansible」を用いたOpenStack上のサーバ構築
2016.7.29
【検証自動化】第3回 IT検証フォーラム2016に出展しました!
2016.7.22
【OpenStackチャレンジ】 第19回 OpenStack Upstream Training編
2016.7.15
【検証自動化】第2回 TestShell+TestCenter連携編
2016.7. 8
【OpenStackチャレンジ】 第18回 HEAT紹介編
2016.7. 4
QNAP紹介(Dockerコンテナ&OpenStack Swift連携)
2016.6.26
【いまさら聞けない!エンジニアの基本シリーズ】 第5回 GitHubを使いこなそう
2016.6.19
【OpenStackチャレンジ】 第17回 Zabbix環境構築編
2016.6.12
【検証自動化】第1回 TestShell編
2016.6. 5
【OpenStackチャレンジ】 第16回 Mirantis 「OpenStack FUEL管理」セミナー紹介編
2016.5.29
【OpenStackチャレンジ】 第15回 Swift環境構築編
2016.5.22
【OpenStackチャレンジ】 第14回 Keystone環境構築編
2016.5.15
【OpenStackチャレンジ】 第13回 Mirantis OpenStack紹介編
2016.5. 2
【OpenStackチャレンジ】 第12回DevStack~ Ironic環境構築編
2016.4.24
【OpenStackチャレンジ】 第11回 インフラエンジニア必見のOpenStackセミナーを開催しました!
2016.4.17
【OpenStackチャレンジ】 第10回 OpenStack Mitaka紹介編
2016.4.10
【Linuxを使いこなす】 CentOSのローカルリポジトリを構築しよう
2016.4. 3
【OpenStackチャレンジ】 第9回 仮想マシンが起動するコンピュートノードを指定してみよう
2016.3.29
【OpenStack チャレンジ】 第8回 ゲストマシンの性能比較をしてみました!
2016.3.19
【OSC2016】第3回 ChatOpsでOpenStackをAPIから制御する
2016.3.12
【OSC2016】第2回Let'sChat Hubot編
2016.3. 4
【OSC2016】第1回ChatOpsの構築
2016.1.31
【OpenStackチャレンジ】 第7回 DevStack~All-In-One Single Machine編
2016.1.22
【OpenStackチャレンジ】 第6回 policy.json紹介編
2016.1.13
【OpenStackチャレンジ】 第5回 Ceilometerについて知ろう!
2016.1. 8
【いまさら聞けない!エンジニアの基本シリーズ】 第4回 VMware基本動作編
2015.12.24
【1年間ありがとう!】2015年度エンジニアブログ アクセスランキング発表!
2015.12.18
【SDNチャレンジ】 第29回 Mininet編
2015.12.14
【いまさら聞けない!エンジニアの基本シリーズ】 第3回 VMwareインストール編
2015.12.10
【OpenStackチャレンジ】第4回 ConoHaでOpenStack環境を構築!
2015.12. 4
【いまさら聞けない!エンジニアの基本シリーズ】 第2回 VirtualBox基本動作編
2015.12. 4
【OpenStackチャレンジ】 第3回 OpenDaylight(Lithium)との連携に挑戦!
2015.11.27
【いまさら聞けない!エンジニアの基本シリーズ】 第1回 VirtualBoxインストール編
2015.11.20
【SDNチャレンジ】 第28回 WiresharkでOpenFlowを解析しよう!
2015.11.15
OpenStackの技術者認定資格「OPCEL認定試験」に合格しました!
2015.11. 9
「Windows Server 2003」から「Windows Server 2012 R2」への移行に不安を抱えるお客様へ
2015.11. 6
【SDNチャレンジ】 第27回 OpenMUL編
2015.10.30
【SDNチャレンジ】 第26回 ONOS-BGPルータ編
2015.10.23
【SDNチャレンジ】 第25回 ONOS GUI編 / [告知]10/24(土),25(日)にOSCに出展します!
2015.10.16
【SDNチャレンジ】 第24回 ONOSインストール編
2015.10. 9
【SDNチャレンジ】 第23回 OpenDaylightユーザ会に参加しました/Lithiumインストール編
2015.10. 2
【SDNチャレンジ】 第22回 Trema-edge編
2015.9.29
【OpenStackチャレンジ】 番外編 10/26(月)からLPI-Japanの「OPCEL認定試験」がスタートします!
2015.9.25
【SDNチャレンジ】 第21回 POX編
2015.9.18
【OpenStackチャレンジ】 第2回 コンポーネント紹介編
2015.9.11
【SDNチャレンジ】 第20回 Floodlight編
2015.9. 4
【OpenStackチャレンジ】 第1回 OpenStackインストール編
2015.9. 3
【ウェブサイトのロードテストをする】 最終回 Siege編
2015.8.28
【SDNチャレンジ】 第19回 Raspberry Piでユースケースに挑戦!
2015.8.21
【SDNチャレンジ】 第18回 OF-Patch動作編
2015.8.13
【SDNチャレンジ】 第17回 OF-Patch紹介編
2015.8. 7
Windows10をインストールしてみました!
2015.8. 4
【ウェブサイトのロードテストをする】 第3回 Tsung編
2015.7.31
【SDNチャレンジ】 第16回 Ryuコントローラインストール編
2015.7.25
【SDNチャレンジ】 第15回 Open vSwitch性能試験編
2015.7.17
【SDNチャレンジ】 第14回 Tcpreplay編
2015.7.17
RedHat OpenStack 管理者認定試験に合格しました!
2015.7.11
【SDNチャレンジ】 第13回 Vyattaコントローラ REST API編
2015.7. 3
【SDNチャレンジ】 第12回 Vyattaコントローラ動作編
2015.7. 1
【ウェブサイトのロードテストをする】 第2回 curl-loader編
2015.6.26
【SDNチャレンジ】 第11回 OpenDaylight動作編②
2015.6.19
【SDNチャレンジ】 第10回 OpenDaylight動作編①
2015.6.18
【ウェブサイトのロードテストをする】 第1回 Apache JMeter編
2015.6.12
【SDNチャレンジ】 第9回 リピーターハブとラーニングスイッチの動作比較編
2015.6. 5
【SDNチャレンジ】 第8回 Tremasharkインストール編
2015.5.25
【SDNチャレンジ】 第7回 帯域制御・ファイアウォール・パケット書換え編
2015.5.22
【SDNチャレンジ】 第6回 ラーニングスイッチ作成編
2015.5.15
【SDNチャレンジ】 第5回 Raspberry Pi2にOpen vSwitchをインストール
2015.5. 8
【SDNチャレンジ】 第4回 5/13(水)、14(木)、15(金)の展示会にて検証自動化デモを実施します!
2015.4.27
【SDNチャレンジ】 第3回 Tremaリピーターハブ編
2015.4.21
【SDNチャレンジ】 第2回 OpenFlowコントローラ作成編
2015.4.14
【SDNチャレンジ】 第1回 Tremaインストール編
2014.8.20
【注意!】8月13日のWindows Updateを適用すると起動できなくなる事例が報告されています!
2014.5.23
約6割の企業が悩んでいるのに、対策しないんですか...?
2014.1. 9
新年あけましておめでとうございます。
2013.12.24
2013年エンジニアブログ アクセスランキング発表!
2013.12.17
コミュニケーション「活性化」の第一歩
2013.10.29
なぜ儲かっているのか分からない!?
2013.10.15
「何を変えるのか、何に変えるのか、どのように変えるのか」
2013.9.17
ブラック企業にドラッカーがアドバイスするとしたら?
2013.9. 4
蟻の穴から堤も崩れる
2013.8. 6
派閥じゃなくて、理念の元に仕事をしよう!
2013.7.31
知識は使ってナンボです!
2013.7.30
御社の相互理解度はどれくらい?
2013.7. 3
何故、それが読まれたか~上半期・エンジニアブログ閲覧数ランキング~
2013.6.12
「何」を知っているかではなく、「誰」が知っているか
2013.5.28
戦後、人間尊重の信念を貫きとおした1人の経営者がいた!
2013.5.24
健康な心が、健康な会社を作る。
2013.4.26
『社長にはもうついていけません・・・』
2013.4.23
仕事と生活をバランスさせるには?
2013.4. 2
組織に必要なのは「ゆらぎ」と・・・?
2013.3.21
代表小林、バングラディシュの地に再度降り立つ
2013.3.14
色々作っちゃいました!
2013.3. 5
「心のバランスシート」に着目していますか?
2013.2. 6
Office2013発売!で、何が変わった?
2013.2. 1
「想いを語る夕べ」が新宿から30分の場所で開催可能に!
2012.12.25
エンジニアブログ番外編:決戦は「ひなたかなた」
2012.12.19
2012年エンジニアブログ&Facebook閲覧数ランキング発表!
2012.11.29
プロセス見直すのはいいけれど...大事なこと忘れてません?
2012.10.31
「仕事」と「個々の生活」の両立~ワーク・ライフ・バランス~
2012.10.26
Windows8発売!で何が起こる?
2012.10. 9
腹が減っては打ち合わせは出来ぬ?~アドック近辺ランチスポット・カフェ編~
2012.10. 2
iPhone5発売!LTE普及には切実な背景が...
2012.9.12
「だれを選ぶか」をまず決めて、その後に「何をすべきか」を決める。
2012.8.17
会社を回すのに大事な3つの感覚。
2012.8. 7
プロジェクトはたいてい失敗に終わるんです。
2012.7.19
『目の前に壁があったら、突き破るしかねえんだよ』by鬼塚
2012.7. 2
大手企業も多数協賛する「東京経営塾」の塾長とは!?
2012.6.15
メンタルヘルスケアジャパン2012報告!
2012.6. 4
御社の理念浸透力はどれくらい?!
2012.5.14
メンタルヘルスケアジャパン2012参加のお知らせ
2012.4.27
東京スカイツリーと地デジとADOC
2012.4.17
マイボトル・マイカップキャンペーン/エンジニアブログ1周年記念
2012.3.14
第1回「想いを語る夕べ」体験会レポート~伝えることの難しさ~
2012.2.29
想いを語る夕べ報告書を新聞にしちゃいました!
2012.2. 6
月刊『ニュートップリーダー』に記事掲載&"想いを語る夕べ"体験会やります!
2012.1.31
【第4回】想いを語る夕べ~フォロー編~
2012.1.23
タニタの社員食堂は"トップの想い"から生まれた!?
2012.1.13
【第3回】想いを語る夕べ~実施編~
2011.12.27
オフィスで簡単エクササイズ!
2011.12.13
【第2回】想いを語る夕べ~準備編~
2011.11.24
【第1回】想いを語る夕べ~誕生編~
2011.11.17
「責任感だけで仕事をしていた・・・。」が「自らサービスを作り上げ、喜びを感じたい!」という熱い想いに変わるまで
2011.11. 8
アドックインターナショナルはGoogleのまわし者!?
2011.10.11
あなたのその行動、誰かに監視されてませんか?
2011.9.28
たったこれだけのことで、チームに一体感が生まれる!?
2011.9.22
ADOCersがITS健康保険組合の野球大会に出場します!
2011.9.21
アドックに入社するとコンサートホールで歌えてグァムに行けるってホント?
2011.8.30
アドック社員元気の素!?
2011.8.16
電力使用制限発動!罰金は100万円!?PC電力管理ソフトのススメ
2011.8. 9
「ネットトラブル調査隊」対象エリア拡大しました!(後日談付き)
2011.8. 1
Windows7にはメールソフトが付いてない!?
2011.7.22
「社長の想いを語る夕べ」プログラムのご紹介
2011.7.12
64ビット版Windowsへの移行について
2011.7. 8
検証やテストを自動化する際に気を付けなければいけない3つの事
2011.7. 5
地デジと周波数再編とADOC
2011.6.29
アドックインターナショナルの節電対策とスーパークールビズ
2011.6.27
あるレンタカー事業会社のケース
2011.6.20
ラボルームのご紹介
2011.6.17
Interop Tokyo 2011に行ってきました!
2011.6. 7
ADOCの保守サービスと震災対応
2011.5.31
"メンタルヘルスケア・ジャパン2011"レポート
2011.5.19
「おばあちゃん家」
2011.5.11
スマートフォンは急速に普及している・・・?
2011.5. 9
ADOCの品質改善活動への取り組み事例をご紹介
2011.4.19
ADOCのお花見と節電への取り組み
2011.4. 6
復興支援のため東北へ向かっていた弊社の社員2名が戻ってきました!その2
2011.3.31
復興支援のため東北へ向かっていた弊社の社員2名が戻ってきました!
2011.3.28
弊社パートナーが被災地支援のサービス開始
2011.3.25
震災により表面化した携帯通信網の弱さ
2011.2.28
エンジニアブログスタートのお知らせ
カテゴリー
月別アーカイブ

<