サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
blog.yuryu.jp
VENOM脆弱性(CVE-2015-3456)についての情報をまとめました。 tl;dr 影響範囲は広いのですが、一部のクラウドベンダー以外は心配する必要はありません。一人で仮想環境を使っている場合には実質的な影響は受けません。なお、AWSは影響を受けないとアナウンスされています。 脆弱性の内容 QEMUに存在するフロッピーディスクコントローラー(FDC)にバッファオーバーフローのバグがあり、そのコードを利用するKVM, Xenが影響されます。なお、このコードはコマンドラインでFDの利用を指定しているかなどに影響を受けず、すべての設定で利用されます。詳しい内容については、Red Hat Security BlogのVENOM, don’t get bitten.という記事が参考になります。 この脆弱性を利用すると、本来アクセスができない他のVM、ホストOSへのアクセスが可能になります。 こ
Linux Kernel Updates 2014.12のお知らせ 直前になりましたが、コミケ87でLinux Kernel Updates 2014.12を頒布します。 スペースは西い-36bです。 今回の内容 Linux 3.16 〜 Linux 3.18の新機能 OOM Killer 解説 Overlayfs を使ってみた ここのところ小さな変更点が多かった Linux ですが、今回は Overlayfs を初めとして魅力的な機能がいくつか導入されました。 サンプルを掲載します。 今回もソースコードをもとに動作を解説しています。 既刊は、2013.08, 2013.12, 2014.08がそれぞれ若干数ありますので持っていきます。よろしくお願いします。
sshの鍵を生成するのにssh-keygenをよく使いますが、無意識的に ssh-keygen -t rsa -b 2048 などと指定していました。ところが最近のバージョンのssh-keygenはオプションなしでもとりあえず動きます。 yuryu@ubuntu:~$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/yuryu/.ssh/id_rsa): Created directory '/home/yuryu/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /h
英語の冠詞は、実はプログラマーにはとてもわかりやすいんです。 変数宣言はa, 参照はthe int i; i = 100; 1行目のint iは宣言なので「a」です。"Declare an integer variable." 次の i = 100 はその変数を参照しているので「the」です。 "Assign 100 to the integer variable." 仮引数と戻り値はa int func(int v) { return v * 2; } 関数の仮引数と戻り値は「a」です。"This function takes an integer argument and returns an integer value." もちろん、その引数を関数内で使う場合は「the」になります。"Double the first argument and return the result."
コミケ86で出版したLinux Kernel Updates 2014.08のKindle版を出版しました。 目次 What's New in Linux 3.13? What's New in Linux 3.14? What's New in Linux 3.15? Dockerとカーネル ファイル名の入れ替え O_TMPFILEの紹介 Linux Kernel Updates 2014.08の購入はこちらから! 以下は冊子版のプレビューです(Kindle版とはレイアウトが異なります)。 Linux Kernel Updates 2014.08の購入はこちらから!
RubyKaigi 2014に3日間参加し、2日目に"Rails Girls: Not Only for Girls"というタイトルで、発表してきました。 Rails Girls: Not Only for Girls - RubyKaigi 2014 from Haruka Iwao Tech companyと呼ばれるUSの会社でも、女性技術者の割合は2割程度にとどまっていて、各社技術者の確保に苦労しているようです。日本での私の経験では、分野にもよりますがおおむね1割程度で、USよりもさらに女性技術者が少ないと感じています。 プレゼン中でも触れた次の動画に象徴されるように、文化的・社会的な要素と深く結びついていて、一朝一夕に変わるものではありません。もちろん車輪の両輪として、公平な採用、職場での性差別をなくすということは進めていく必要があります。 そんな中、長期的な目線で状況を改善してい
今日のニュースに次のようなものがありました。 無線LANのメール丸見え 成田、関西、神戸の3空港 成田、関西、神戸の3空港が提供する無料の公衆無線LANサービスでインターネットを利用した場合、送信したメールの宛先や中身、閲覧中のウェブサイトのURLを他人がのぞき見できる状態になることが26日、神戸大大学院の森井昌克教授(情報通信工学)の実地調査で確認された。 無線LANを暗号化すればのぞき見を防止できるが、パスワードの入力などが必要となり、3空港は利便性を考慮し暗号化していないという。 無線LANのメール丸見え 成田、関西、神戸の3空港 - 47NEWS(よんななニュース)より引用 「無線LANを暗号化すればのぞき見を防止できる」というのは、誤解です。 無線LANの暗号化方式には複数あり、WEP, TKIP, CCMP(AES)の3種類が使われています。これらは暗号化の方式を定めただけで、
コミケ86に「Linux Kernel Updates 2014.08」を出展します! 8月17日(日) 西“き”-10b 「低級はっかーズ」 目次 What's New in Linux 3.13? What's New in Linux 3.14? What's New in Linux 3.15? Dockerとカーネル ファイル名の入れ替え O_TMPFILEの紹介 表紙は毎度おなじみきのとなおとさんに描いていただきました。ありがとうございます。 価格は300円、32ページです。 立ち読み 今回はDocker特集です! 既刊 過去のコミケで出したLinux Kernel Updatesのバックナンバーも持って行きます。在庫限り。 Linux Kernel Updates 2012.12 Linux Kernel Updates 2013.08 Linux Kernel Update
Asus Z97M-Plusのような新しめのAsusマザーボードには、イーサネットコントローラーとしてIntel I218Vが搭載されています。ところがFedora 20のインストールディスクにはこのデバイスドライバは入っていません。インストール方法を記録しておきます。 私は違う環境のFedora 20でビルドしてUSBで運びました。仮想マシンを使うのが楽だと思います。 必要パッケージなど kernel-devel-3.11.10-301.fc20.x86_64 (バージョンも揃えます) "Development Tools" 一式 I218V用の新しいドライバ e1000e-x.y.z.w.tar.gz っていうファイル名 ビルド手順 ダウンロードしたe1000eの圧縮ファイルを展開します。私の場合は e1000e-3.1.0.2.tar.gz でしたので tar xf e1000e-3
成長したいエンジニアは良いエンジニアの本棚を真似るといいんじゃない? - Lean Baseballという記事があって、その中で 「本棚を真似る」エンジニアから「本棚を真似られる」エンジニアへ というお話がありました。確かに本棚を共有するのは、私がどんなことに興味があるのかわかってもらうとても良い方法だと思うので、家の本棚写真を一挙公開です! なお、ここにある本の他に、実家にあるもの、会社の本棚にあるもの、Kindleで読んでいるものなどあります。これでおすすめ&必読本すべてを網羅しているわけではないですが、比較的最近購入した、またはいただいた本が並んでいるので、興味の反映としてはかなり正確です。マンガ棚は省略しています。 みなさまはどんな本が本棚に並んでいるでしょうか。見てみたいです! なお、元記事で触れられている「リーン・スタートアップ」は、amazonのwishlistに入ったまま購
CentOS 7ではDockerをフル機能で利用することが可能です。 EPELレポジトリを有効にする DockerはEPELレポジトリに含まれています。CentOS 7用のEPELレポジトリは現在ベータながら、すでに用意されています。 インストールするコマンドは次の通りです。 $ sudo yum install http://linux.mirrors.es.net/fedora-epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm Dockerをインストールする Dockerのパッケージ名は、docker-ioです。これをyumでインストールします。 $ sudo yum install docker-io インストールした後に、サービスとして起動させるには systemctl start、ブート時に自動的にサービスを起動させるには syst
CentOS 7ではsystemdが導入されているので、サービスの管理が従来と大きく変わっています。詳しい解説はsystemd徹底入門のスライドを参照するとして、ここでは「前のコマンドはsystemdでどう入力するの?」というのだけ、簡単にまとめてみました。 サービス名にはsshdを指定していますが、もちろん任意のサービスが指定できます。 サービスの起動、終了など 操作SysV InitSystemd 起動/etc/init.d/sshd startsystemctl start sshd 終了/etc/init.d/sshd stopsystemctl stop sshd 強制終了PID探してkill -9systemctl kill -s 9 sshd 再起動/etc/init.d/sshd restartsystemctl restart sshd 設定反映/etc/init.d/s
RHEL 7, CentOS 7では、NetworkManager の利用が推奨されています。今まで /etc/sysconfig/network-scripts/ の下や、そのほかのコマンドを利用して行っていた設定が、一元的に設定できるようになっています。 ここでは、よく使うような設定を、実際の利用例とともにまとめてみました。 NetworkManagerをテキストベースで利用するには、大きく分けてnmtuiコマンドとnmcliコマンドがあります。それぞれ、テキストベースのUIと、コマンドラインツールになっています。 nmtui 最も簡単に使えるには、nmtuiコマンドです。実行すると、対話的にネットワークの設定を行うことが可能です。以下にスクリーンショットを掲載します。 いかがでしょうか? 基本的な設定はこのUIから可能です。少し変えてみる、初めて使ってみる場合にはこちらを利用するのが
CentOS の新しいメジャーリリース、 CentOS 7がリリースされました! お断り:ここの情報は非公式なもので、ベストエフォートで提供されています。 国内ミラー状況 公式サイトには掲載されていませんが、国内の有力ミラーサイトがすでにミラーを終えています。 http://ftp.iij.ad.jp/pub/linux/centos/7/ http://ftp.ne.jp/Linux/distributions/CentOS/7/ http://ftp.riken.jp/Linux/centos/7/ http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/ バージョン番号の変更 今回からバージョン番号が 7.0-1406、というように、末尾に数字がつくようになりました。 7.0 は upstream である Red Hat Enterprise Linux
x86(32bit)環境で、どのようにシステムコールが呼ばれているのかを調べてみました。 int 80h 昔からあるシステムコールの呼び方で、eax レジスタにシステムコールの番号をセットした後、ソフトウェア割り込みの int 80h をコールするとシステムコールが呼ばれます。これはどのバージョンの Linux でも使えます。ただし、ソフトウェア割り込みは遅いのが欠点です。 sysenter 最近のIntelのプロセッサはすべて sysenter というシステムコール専用の命令が用意されています。この命令は int 80h に比べるとかなりシンプルで、予め設定されたシステムコールハンドラのアドレスをCS:EIPとSS:ESPにセットして、特権モードに切り替えて実行を再開するのみです。詳しくは「64ビットCPU(AMD64+EM64T)でアセンブラ int 2E/sysenter/sysca
listen()のbacklogが不足した際のTCP_DEFER_ACCEPTの動作について - blog.nomadscafe.jpという記事の中で、listen backlog があふれた後に accept(2) すると、その後の read(2) が EAGAIN を返したり、接続が不安定になるという事象が説明されていました。気になったので調べてみたことをまとめます。 結論から言うとこれはLinuxの仕様です。manのtcp(7)を見ると、 TCP_DEFER_ACCEPT (since Linux 2.4) Allow a listener to be awakened only when data arrives on the socket. Takes an integer value (seconds), this can bound the maximum number of
WebScaleSQLが公開されました。 これはFacebook, Google, LinkedInそしてTwitterのMySQLエンジニアが、大規模環境で使用する際に必要な変更点をまとめて、違う名前をつけてリリースしたものです。 MySQLとの違い FAQにまとまってるものと、GitHubのcommitsを見ればなんとなくわかります。 変更点それぞれについて全部のテストを自動で走らせるようなフレームワークを追加 ストレステストと自動化された性能テストを追加 テストを整理して、安全な変更が余計なテストを壊さないようにした NUMA interleave、innodb バッファプールフラッシュの最適化、いくつかのクエリに対する最適化など性能改善 super_read_onlyと、1秒以下の精度でタイムアウトを指定するといった、web scaleで必要な変更 super_read_only
JAWS Days 2014に登壇させていただき、「最強のAWS」というテーマで発表しました。 モデレーターの@con_mameさんからは「AWSのここが良くなればいいのに」とか「この機能が無いのはどうよ」みたいな話をしてほしいと言われてました。でもAWSの怖いところは、「この機能があれば良いのに」と思っていると気づかないうちに実装されていたり、あまりに機能が多いので「実は存在した」というオチがありそうなところ。話題の選定には気を遣いましたが、結果的にAWSの中の人に「いいね!」と言ってもらえてよかったです。 今回の話題は大きく2つ。ひとつは「レイテンシ」、もうひとつは「テスト」です。レイテンシは、やはりクラウドや仮想技術につきものというか、どうしても物理環境よりも長くなってしまうので「もうひと押し!」のような考えで書きました。発表後に聞いたのですが、c3インスタンスでplacement
Linuxのネットワークパラメータの一つに、net.core.somaxconnというのがあります。これはlisten(2)の第二引数backlogの上限値となっています。このsomaxconnは一見intに見えますが、実はunsigned shortの範囲の数値しか受け付けません。それを超える数値を入れると黙って切り捨てられます。つまり -1→65535 0→0 65535→65535 65536→0 65537→1 と同じような動作を内部的にします。なので、この値は絶対に0~65535の範囲を超えてはいけません。以下、詳しい説明です。 おことわり: この仕様はLinux 3.11以降変更されており、範囲外の数値を設定できないようになっています。ここに書いてある内容が再現するのは、Linux 3.10以前の古いカーネルのみです。 まずsysctlの定義ですが net/core/sysct
sshでログインする際にローカルホストで使用する鍵は.ssh/id_rsaですが、この時このid_rsaと異なる鍵の公開鍵がid_rsa.pubとして置かれていると、そちらを参照してしまいログインできないという状況が発生しました。 再現手順は以下のとおり。 ssh-keygen -t rsa -b 2048 で適当に鍵を作る mv .ssh/id_rsa .ssh/id_rsa2 としてバックアップ ssh-keygen -t rsa -b 2048 でもう一つ鍵を作る mv .ssh/id_rsa2 .ssh/id_rsa として秘密鍵を戻す これで正しい秘密鍵を見ているはずなのに、ログインできなくなります。デバッグ出力には debug1: Next authentication method: publickey debug1: Offering RSA public key: /ho
コミケ85で頒布した、Linux Kernel Updates Vol.2013.12 の Kindle版を出しました。 Linux Kernel Updates 2013.12の購入はこちらから! 以下は冊子版のプレビューです 目次 What's New in Linux 3.11? What's New in Linux 3.12? TCP/IPチューニング特集 TCP/IPチューニング特集はsysctlで設定できるパラメーターについて詳しく説明しています。紛らわしい設定、間違えやすい設定についてカーネルコードを参照しながら正確な説明を心がけました。 Linux Kernel Updates 2013.12の購入はこちらから!
VMware Fusionで仮想マシンを立ち上げた時に、外にあるサーバーからPXE Bootしたいと思いました。ところが普通にやってもfilenameやnext-serverが取れないので、起動できません。いろいろググったところ、下記のようにするのがよさそうでした。 dhcpd.confを編集 /Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf を編集します。vmnet8というのは使っているネットワークのインタフェースになります。設定ファイルをのぞいてみて、IPのレンジが現在使っているものと一致すればいいと思います。私の環境にはvmnet1とvmnet8がありました。 dhcpd.confを開くと ###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" ####
この記事はMySQL Casual Advent Calendar 2013の16日目の記事です。 MySQLのマスタ冗長化のいち手段としてMHAというものがあります。マスタが落ちた時に自動的にスレーブに切り替えてくれます。詳しいアーキテクチャは公式ページやそこから辿れるスライドに詳しいのでそちらを参照していただくとして、ここではカジュアルに導入の時に詰まった店を挙げます。 幾つかはバグらしきものも含まれているので、後ほど公式にレポートしようと思います。 MySQLのパスワードに記号が入っているとうまくいかない MySQLのパスワードに一部の記号が入っていると認証が通りませんでした。コードを見るとエスケープして戻して、MySQL向けのエスケープしたりシェル向けのエスケープをしたりと入り組んでいたので、どこかで対応が崩れているのかと思いましたが他にもこの種の問題はありそうなのでとりあえず記号
AWS EC2に新しいc3世代のインスタンスタイプが追加されたのですが、値段あたりの処理性能がいまいちわからなかったのでHeavy Reserved Instanceを1年使う計算で比べてみました。比較対象は c1.xlarge, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, cc2.8xlargeです。3年でもあんまり変わらないと思います。リージョンはバージニアです。 というわけで値段あたりのCPUパワーが一番いいのはcc2.8xlargeでした。c3世代はSSD搭載なので、SSDほしい時は選択肢が変わってくると思いますが、単純にCPUだけほしい、という時はcc2.8xlargeが良さそうです。c3世代より2割ぐらい安い計算になりました。 備忘録的な記事で雑なまとめですがこのへんで。
MySQLのmax_connectionsは2048に設定しました。innodb_file_formatはBarracudaで、Buffer poolは56GBを確保し、buffer pool instanceは32に設定しました。 測定内容 sysbench の OLTP テストを下記のようなコマンドで走らせました。 for t in 16 32 64 128 256 512 1024; do sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=benchuser --mysql-password=benchuser --db-driver=mysql --num-threads=$t --max-requests=200000 --oltp-read-only run; done for t in 16 32 64 1
講師は藤田稜さん Fedora最新技術情報といいつつRHEL7のお話でした。いくつか気になった点をピックアップします。 xfsがデフォルトになるかも RHEL7ではxfsをデフォルトファイルシステムにしたいそうですが、まだ安定性やメモリ消費量に難があり、技術的な観点から決定はしていないそうです。 「RHEL 4, 5, 6 の初期出荷でファイルシステムの破損バグを仕込んだ実績があるので、今からxfsに切り替えたら絶対何か踏む」という声も。 iptablesからfirewalldへ 今までファイアウォールはiptablesを使っていましたが、標準でfirewalldを使うように変更します。従来のiptablesとは排他利用になります。戻すことはできますが、基本的にはfirewalld推奨とのこと。設定を読み込み直すときにreloadしてもセッションが切れなくなっているそうです。 またそれに伴
10月9日に秋葉原で開催されたMariaDB / MySQL コミュニティイベント in Tokyoに参加してきました。最近話題の MariaDB、いったいどんな感じだろう?という情報収集に出かけました。 MySQL と MariaDB の歴史 MySQL は1995年生まれ。MySQL=会社=ソフト 2007年、10億米ドルで Sun が買収 2009年、MariaDB が fork 2009年、Oracle が Sun を買収 2010年、Oracleからコンサルと営業部隊が抜けてSkySQLを創業 2013年、SkySQLとMariaDB Services(エンジニア部隊)が経営統合 SkySQL ABについて SkySQLはMySQLとMariaDBのサポートを提供している会社。MariaDBの開発にもコミットしているが、MariaDBの運営自体は MariaDB Foundati
ISUCON3に会社の方と3人でチームを作って参加しました。結果は... 予選敗退! スコアは初期状態のGoで測ったものが最終スコアです... 当日の流れ 今年初参加で、全く予習をしていなかったので勘所もなにもつかめず、まずWebアプリケーションがいくつか転がっていることを認識。言語は議論の末皆がやったことのある Perl に決定。 Perl の会社に務めているのに私だけ Perl がろくに書けません。 作戦は、まずコードを読んでボトルネックになっていそうなところを修正しようとして、コード分析から始めました。具体的には以下の様な点があがりました。 markdown を毎回 fork して変換しているのは遅そう ログインしていない状態のページはキャッシュできそう pager は怪しいけど後回しかな 静的ファイルも後ろに投げているのでリバースプロキシで処理しよう SQLにインデックスがなかった
MySQL 5.6 で GTID (Global Transaction ID)が導入されました。どうも使うと便利そうだ、というものの実際どんなものかイマイチ分からなかったので、調べてみました。 私は調べるまで誤解していたのですが、UUIDを持つのはサーバーであって、トランザクションではありません。それぞれのサーバーにUUIDが割り当てられ、トランザクションは連番が振られます。 例えば、4台のMySQLインスタンスで1台をマスターにした場合は以下のようににUUIDが振られます。 そして、トランザクションは次のようにIDが振られます。 UUID:トランザクション番号 例えば"40bbcf9b-e556-45b0-bdb3-e528f0041652"で実行された123番目のトランザクションは 40bbcf9b-e556-45b0-bdb3-e528f0041652:123 という感じになります
次のページ
このページを最初にブックマークしてみませんか?
『Life with open mind』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く