Thursday, 11 August 2016

[Linux kernel] dm - đang mệt

dm là từ viết tắt phổ biến cho "device mapper" trong thế giới Linux.
dm xuất hiện từ phiên bản 2.6.9 [2] của Linux kernel, tức đến giờ này thì các hệ điều hành Linux-based đều có sẵn dm để dùng.

Trang chủ: https://www.sourceware.org/dm/ đã định nghĩa một cách nghiêm túc về dm như sau [3]:
The Device-mapper is a component of the linux kernel (since version 2.6) that supports logical volume management. It is required by LVM2 and EVMS. The original LVM (included in stock 2.4 kernels) does not use it.
Vậy dm:
  • là một thành phần của Linux kernel - cụ thể nó là một kernel module (wikipedia gọi nó là một "framework" [4]).
  • dùng để hỗ trợ việc quản lý các volume một cách "logical".
  • là phần yêu cầu bởi LVM2 và EVMS - nếu không biết chúng là gì - tạm bỏ qua
Trên Linux, dm thể hiện là một block device, có thể thấy ở :

# grep mapper /proc/devices
252 device-mapper
Nói một cách dễ hiểu hơn, device-mapper giúp người dùng nhìn thấy/quản lý các device (ở đây là các ổ cứng) theo một góc nhìn sử dụng (logical) thay vì góc nhìn vật lý (physical) . Cho phép phân chia chúng theo logic (sử dụng làm phân vùng ở đây cho ứng dụng này, cho ứng dụng kia) chứ không theo tính chất vật lý (một ổ cứng số 1, ổ cứng số 2 ...)

dm là một thành phần của kernel, tức do kernel quản lý (kernel space), khi muốn tương tác với nó, cần có các công cụ ở phía người dùng (userspace) như dmsetup, hay lib libdevmapper [3]

Linux documentation dành hẳn 1 thư mục cho những thứ liên quan đến dm
https://www.kernel.org/doc/Documentation/device-mapper/

dmsetup
dmsetup là câu lệnh để quản lý các logical device ở mức thấp (low-level). Tất nhiên nó chỉ quản lý các logical device tạo bởi device-mapper. Các device này từ đây sẽ gọi là "device-mapper device".

Xem thêm tại: http://manpages.ubuntu.com/manpages/trusty/man8/dmsetup.8.html

dm-crypt
Định nghĩa [5]
Device-Mapper's "crypt" target provides transparent encryption of block devices using the kernel crypto API.
Theo thuật ngữ được sử dụng ở đây, DM có nhiều target, có thể kể tới:
- dm-crypt
- dm-cache
- linear
...

crypt target có khả năng mã hoá một block device sử dụng crypto API của kernel

cryptsetup
là câu lệnh giúp quản lý các volume được mã hoá bởi dm-crypt (dm-crypt encrypted volume).
Người dùng (sysadmin) thường sử dụng câu lệnh này để thực hiện formuat/encrypt/decrypt volume.

# TODO
LUKS


Tham khảo:

[2] http://www.tldp.org/HOWTO/LVM-HOWTO/builddmmod.html
[3] https://www.sourceware.org/dm/
[4] https://en.wikipedia.org/wiki/Device_mapper
[5] https://www.kernel.org/doc/Documentation/device-mapper/dm-crypt.txt
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/device_mapper.html

Bài viết thực hiện trên:
# uname -a
Linux wl-ci 3.13.0-77-generic #121-Ubuntu SMP Wed Jan 20 10:50:42 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Tạm dừng, còn tiếp...
HVN @ FAMILUG at ORG