Category: Uncategorized

A utility to dump block devices data in Linux

Many a times it is necessary to read raw disk blocks, such as data corruption, magic block corruption. xxd is a simple and lightweight utility to dump a device. # xxd /dev/vdb|less 00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ……………. 00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ……………. 00000020: 0000 0000 0000 0000 0000 0000 0000…

Write CRUSH rule for a Cluster

CRUSH rules are described as follows: { “rule_id”: 1, “rule_name”: “replicated_ruleset_hdd”, “ruleset”: 1, “type”: 1, “min_size”: 1, “max_size”: 10, “steps”: [ { “op”: “take”, “item”: -481, “item_name”: “hdd” }, { “op”: “chooseleaf_firstn”, “num”: 0, “type”: “jbod” }, { “op”: “emit” } ] }, Visualize the CRUSH rule as a way to traverse a tree. The ‘steps’ section decides the traversal.…

OSD on Debian Jessie : No cluster conf found

Reference Tracker The problem is in the ceph-disk code. ceph-disk prepare has a following log on the destination node # ceph-disk -v prepare /dev/vdb command: Running command: /usr/bin/ceph-osd –cluster=None –show-config-value=fsid The value of cluster is None and that is incorrect. It must be ceph. # /usr/bin/ceph-osd –cluster=None –show-config-value=fsid 00000000-0000-0000-0000-000000000000 # /usr/bin/ceph-osd –cluster=ceph –show-config-value=fsid 68eabcd3-a4fd-4c80-9e9c-56577d841234 The code change involved the following…

How to debug RcoksDB issues in Bluestore

Problem We started to see multiple near-full index OSDs in a Luminous cluster. $ sudo ceph osd df tree ID CLASS WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR PGS TYPE NAME 351 ssd 0.14999 0.79999 152G 123G 29727M 81.03 3.25 18 osd.351 The near-full message is triggered for OSDs that have used more the 85%. Environment It runs Ceph 12.2.5.2…

Bluestore Internals

## Bluesotre Discussions If WAL is full what would happen? Would writes block? It never blocks; it will always just spill over onto the next fastest device (wal -> db -> main). Note that there is no value to a db partition if it is on the same device as the main partition. Would a drastic (quick) action to correct…

Ansible Code to Split Strings

// Source https://gist.github.com/VerosK/9853931 — – hosts: localhost vars: facter_blockdevices: sda,sdb,sdc,sdd,sde,sdf gather_facts: no tasks: – name: Separate facts set_fact: blockdevices=”{{facter_blockdevices.split(‘,’)}}” – name: Show the devices shell: echo {{ item }} with_items: blockdevices

Opera Browser: Architecture

Opera is built on Chromium project. Chromium is an open  source project that uses WebKit, a free and open source rendering engine. WebKit is open sourced by Apple. So, Google Chrome and Opera resemble a lot. They use process for each tab and look similar. The benefit of using processes to handle tabs is: Better security for browser as processes…

EMC/VMWare VAAI (VStoarge API for Array Integration)

VAAI (vStorage API for Array Integration) is EMC/VMWare API that allows a hardware array to expose certain features of the array. The hardware array typically offers hardware acceleration for certain operations, including: Clone Blocks/ XCOPY because intra-array copy is faster than through the host. Zero Blocks/ Write same Block delete Atomic test and Set, used on VMFS volume Thin provisioning…