VirtualBox上のOracleLinuxのディスクを拡張する

VirtualBox上にインストールされたOracleLinuxのディスクを拡張した時のメモ。

バージョン

VirtualBox 6.0
OracleLinux 7.6

VirtualBoxの設定

 ・ファイル>仮想メディアマネージャ を選択
 ・追加したいディスクのプロパティ画面を表示して、ディスクのサイズを変更して適用

OracleLinuxの設定

 ・rootユーザでログイン
 ・現状のディスク確認

[root@oel7 ~]$ df
ファイルシス        1K-ブロック    使用  使用可 使用% マウント位置
/dev/mapper/ol-root    10258432 9495888  762544   93% /
devtmpfs                1006548       0 1006548    0% /dev
tmpfs                   1023400       0 1023400    0% /dev/shm
tmpfs                   1023400    9680 1013720    1% /run
tmpfs                   1023400       0 1023400    0% /sys/fs/cgroup
/dev/sda1               1038336  299928  738408   29% /boot
tmpfs                    204680       8  204672    1% /run/user/42
tmpfs                    204680      24  204656    1% /run/user/1000


 ・fdiskでパーティションを拡張

[root@oel7 ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000b1daf

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    25165823    11533312   8e  Linux LVM

コマンド (m でヘルプ): d
パーティション番号 (1,2, default 2): 
Partition 2 is deleted

コマンド (m でヘルプ): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
パーティション番号 (2-4, default 2): 
最初 sector (2099200-41943039, 初期値 2099200): 
初期値 2099200 を使います
Last sector, +sectors or +size{K,M,G} (2099200-41943039, 初期値 41943039): 
初期値 41943039 を使います
Partition 2 of type Linux and of size 19 GiB is set

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000b1daf

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   83  Linux

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。


 ・Linuxを再起動

[root@oel7 ~]# reboot


 ・物理ボリュームのサイズの変更

[root@oel7 ~]# pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized


 ・論理ボリュームのサイズを拡張

[root@oel7 ~]# lvextend -l +100%FREE /dev/mapper/ol-root
  Size of logical volume ol/root changed from 9.79 GiB (2507 extents) to <17.80 GiB (4556 extents).
  Logical volume ol/root successfully resized.


 ・ファイルシステムを拡張

[root@oel7 ~]# xfs_growfs /dev/mapper/ol-root
meta-data=/dev/mapper/ol-root    isize=256    agcount=4, agsize=641792 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2567168, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2567168 to 4665344


 ・ディスクサイズが拡張されたか確認

[root@oel7-node2 ~]# df
ファイルシス        1K-ブロック    使用  使用可 使用% マウント位置
/dev/mapper/ol-root    18651136 9641740 9009396   52% /
devtmpfs                1006548       0 1006548    0% /dev
tmpfs                   1023400       0 1023400    0% /dev/shm
tmpfs                   1023400    9664 1013736    1% /run
tmpfs                   1023400       0 1023400    0% /sys/fs/cgroup
/dev/sda1               1038336  299928  738408   29% /boot
tmpfs                    204680       4  204676    1% /run/user/42
tmpfs                    204680      24  204656    1% /run/user/1000

Oracle Cloud Infrastructure DNSサービスにサブドメインを委任する

OCI(Oracle Cloud Infrastructure)にはDNSのゾーンを作成して管理するサービスがあります。本日は、OCIのDNSサービスに保有しているドメインサブドメインを委任する方法について説明します。

1.OCI DNSで Zoneを作成

最初に、OCI管理コンソールの「ネットワーキング > DNSゾーン管理」より「ゾーンの作成」を行います。

f:id:den2sn:20191206122543p:plain

メソッド:手動
ゾーン・タイプ:プライマリ
ゾーン名:<<管理するサブドメイン名>>

今回はゾーン名を「den2sn.com」のサブドメインとして「test.den2sn.com」を設定してみます。

2.NSレコードの設定内容確認

ゾーンを作成するといくつかレコードが定義されています。そのレコードの設定を確認します。作成したゾーンをクリックすると、レコードに設定されているNSレコード(4件)を確認することができます。このレコードを利用しているドメインDNSサービスに登録する必要があるのでメモしておきます。

f:id:den2sn:20191206122823p:plain

3.NSレコードをDNSサービスに登録

ドメインを購入しているDNSサービスに、2.で確認したNSレコード(4件)を追加します。私は「お名前.com」でドメインを購入しているので、そのDNSサービスの管理画面で設定します。

f:id:den2sn:20191206123012p:plain

ホスト名:<<管理するサブドメイン名>>
TYPE:NS
TTL:<<キャッシュ有効期限(秒)>>
VALUE:<<2.で確認したRDATAの名前>>

テストのために今回はTTL値を少なく設定していますが、1日(86400)で良いと思います。

4.NSレコードの設定確認

NSレコードが「お名前.com」に正しく登録されたか、任意のクライアントで確認します。Windowsでは以下のnslookupコマンドで登録されているNSレコードを確認することができます。

$ nslookup -type=ns test.den2sn.com

サーバー:  UnKnown
Address:  10.0.0.1

権限のない回答:
test.den2sn.com nameserver = ns4.p68.dns.oraclecloud.net
test.den2sn.com nameserver = ns1.p68.dns.oraclecloud.net
test.den2sn.com nameserver = ns2.p68.dns.oraclecloud.net
test.den2sn.com nameserver = ns3.p68.dns.oraclecloud.net

ns1.p68.dns.oraclecloud.net     internet address = 162.88.2.6
ns2.p68.dns.oraclecloud.net     internet address = 162.88.18.6
ns3.p68.dns.oraclecloud.net     internet address = 162.88.34.6
ns4.p68.dns.oraclecloud.net     internet address = 162.88.50.6

3.で登録したNSレコードの一覧が表示されればOKです。

5.Aレコードの作成

 ・NSレコードの確認が取れたら、次は実際にホスティングするインスタンスのIPをOCIに作成したゾーンのレコードに追加します。

f:id:den2sn:20191206123441p:plain

レコード型:A
ホスト・レコード:<<インスタンスドメイン名>>
TTL:<<キャッシュ有効期限(秒)>>
RDATAモード:基本
アドレス:<<インスタンスのIP>>

6.Aレコードの設定確認

最後にまた任意のクライアントから、今度はAレコードが参照できるか確認します。

$ nslookup test.den2sn.com
サーバー:  UnKnown
Address:  10.0.0.1

権限のない回答:
名前:    test.den2sn.com
Address:  xxx.xxx.xxx.xxx

5.で登録したAレコードのIPが表示されればOK


これで無事、サブドメイン以下のIP管理をOCIのDNSサービスで実施することができるようになりました。


OCIのDNSサービスにはインスタンスのヘルスチェック結果を元に、返却するIPを変更するようなトラフィックマネージメント機能があります。サブドメインの管理をOCIのDNSサービスに委任しておくことでこのような機能を有効活用することができます。

Java EE 8 関連のAPIの日本語翻訳(非公式)

megascusさんがJava EE関連のAPIの日本語翻訳(非公式)を公開されているようですね。
Java EEAPIは公式で日本語化されていないので英語がわからない方は参考になると思います。


Java Servlet 4.0 API Specification日本語翻訳版(非公式)
https://megascus.github.io/servlet-spec/docs/apidocs/
Java Persistence API 2.2 Specification日本語翻訳版(非公式)
https://megascus.github.io/jpa-spec/docs/apidocs/

Java EE 8で追加・更新された機能

先日Java EE 8がリリースされましたが
追加・更新された各テクノロジーのバージョンは以下のようになっています。

Java EE 8で新規で追加されたもの
テクノロジー バージョン
Java API for JSON Binding (JSON-B) 1.0
Java EE Security API 1.0
アップデートされたもの
テクノロジー EE6バージョン EE7バージョン
Enterprise JavaBeans (EJB) 3.2 3.2
Servlet 3.1 4.0
JavaServer Pages (JSP) 2.3 2.3
Expression Language (EL) 3.0 3.0
Java Messaging Service (JMS) 2.0 2.0
Java Transaction API (JTA) 1.2 1.2
JavaMail API 1.5 1.6
Java Connector Architecture (JCA) 1.7 1.7
Web Services 1.4 1.4
Java API for RESTful Web Services (JAX-RS) 2.0 2.1
Java API for WebSocket 1.0 1.1
Java API for JSON Processing (JSON-P) 1.0 1.1
Concurrency Utilities for Java EE 1.0 1.0
Batch Application for the Java Platform (jBatch) 1.0 1.0
Java EE Management 1.1 1.1
Java Authorization Service Provider Contract for Containers (JACC) 1.5 1.5
Java Authentication Service Provider Interface for Containers (JASPIC) 1.1 1.1
JSP Debugging 1.0 1.0
JavaServer Pages Standard Tag Library (JSTL) 1.2 1.2
Web Services Metadata for the Java Platform 2.1 2.1
JavaServer Faces (JSF) 2.2 2.3
Common Annotations 1.2 1.3
Java Persistence API (JPA) 2.1 2.2
Bean Validation 1.1 2.0
Managed Beans 1.0 1.0
Interceptors 1.2 1.2
Contexts and Dependency Injection for Java EE (CDI) 1.1 2.0
Dependency Injection for Java 1.0 1.0


紆余曲折あったJava EE 8ですが、追加された機能は最終的にJSON-BとSecurity APIの2つになりました。


また、Servlet、Bean Validation、CDIの3つの仕様についてはメジャーバージョンが更新されており、大きな機能が追加されています。

Java EE 8 & GlassFish 5.0 リリース!

Java SE 9のリリースにあわせてJava EE 8と参照実装であるGlassFish 5.0がリリースされました。
以下のサイトよりダウンロード可能です。


GlassFish 5.0 ダウンロード
https://javaee.github.io/glassfish/download
Java EE 8 SDK ダウンロード
http://www.oracle.com/technetwork/java/javaee/downloads/index.html


Java EE 8ではHTTP / 2対応やJava SE 8対応など多くの機能が導入されています。
Java EEに準拠した各アプリケーションサーバはこれから順次対応していくのではないでしょうか。

JDK 9リリース!

2017年9月21日にJDK 9がリリースされました。
以下のサイトよりダウンロード可能です。


Java SE 9(Oracle JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html


Javaプラットフォームのモジュール化を含む多くの改善が含まれています。
(機能の詳細こちら http://openjdk.java.net/projects/jdk9/


是非ダウンロードして新しい機能をお試しいただければと思います。

vue.jsでURLのシャープ#(hashbang)を消したい

vue.jsでvue-routerを使用する際にデフォルトではhash modeとなるためURLに#が付加されます。#を使用したURLが嫌な場合はmodeをhistoryに変更することでURLに#を付加しないようにすることができます。


modeを変更するにはVueRouterの指定で以下のようにモードを指定します。

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})


historyモードではhistory.pushState APIを使用して
hash modeと同様にページリロードなしにURLの書き換えを行うことができます。