[2019] Một ít ghi chép về filesystem

Hung, Nguyen Trong
6 min readApr 16, 2021

Một sô góp nhắt về filesystem trong năm 2019

1. Filesystem là gì

  • FileSystem là thứ xác định các cách thức tổ chức, quản lý dữ liệu hay có thể nói là quản lý cách thức quản lý cách dữ liệu được đọc và lưu trên thiết bị ( ổ cứng hoặc các phân vùng ). File system cho phép người dùng truy cập nhanh chóng và an toàn khi vào các tệp tin thư mục khi cần thiết.
  • Những loại FileSystem được Linux hỗ trợ:
  • FileSystem cơ bản: ext2, ext3, ext4, XFS, Btrfs, JFS, NTFS v.v.
  • FileSystem dành cho dạng lưu trữ Flash (Thẻ nhớ các thứ..): ubifs, JFFS2, YAFFS v.v.
  • FileSystem dành cho cơ sở dữ liệu.
  • Filesystem mục đích đặc biệt: procfs, sysfs, tmpfs, squashfs, debugfs,…

2. Partion là gì ?

  • Phân vùng là việc chia không gian lưu trữ dữ liệu của một ổ cứng thành các vùng riêng biệt được gọi là các Partition (phân vùng). Các partition thường được tạo khi ổ cứng chuẩn bị được đưa vào sử dụng. Khi một ổ cứng được chia thành nhiều partition, các thư mục và các file có thể được lưu trong các partition này. Do những thay đổi sau này trên máy tính và hệ điều hành, nên các quản trị viên hoặc người dùng thường có nhu cầu kích thước lại các phân vùng, tạo các partition mới trong một vùng chưa được chỉ định, thậm chí đôi khi cả các partition không thể xóa.

3. Cấu tạo ổ cứng

  • Một ổ đĩa cứng (thường được gọi tắt như đĩa cứng, ổ cứng, hoặc HDD) là một thiết bị lưu trữ điện tĩnh (non-volatile) lưu trữ dữ liệu kỹ thuật số được mã hóa trên các đĩa từ (platter) cứng quay nhanh trên bề mặt từ tính. Những chiếc HDD đời đầu có phương tiện có thể tháo rời tuy nhiên ổ cứng ngày nay là một thiết bị kín (ngoại trừ lỗ thông hơi để cân bằng áp suất không khí) với phương tiện cố định.

4. RAID

  • RAID là chữ viết tắt của Redundant Array of Independent Disks. Ban đầu, RAID được sử dụng như một giải pháp phòng hộ vì nó cho phép ghi dữ liệu lên nhiều đĩa cứng cùng lúc. Về sau, RAID đã có nhiều biến thể cho phép không chỉ đảm bảo an toàn dữ liệu mà còn giúp gia tăng đáng kể tốc độ truy xuất dữ liệu từ đĩa cứng.
  • RAID 0 bằng tổng dung lượng các ổ cộng lại.
  • RAID 1 chỉ duy trì dung lượng 1 ổ.
  • RAID 5 sẽ có dung lượng ít hơn 1 ổ (5 ổ dùng raid 5 sẽ có dung lượng 4 ổ).
  • RAID 6 sẽ có dung lượng ít hơn 2 ổ (5 ổ dùng raid 6 sẽ có dung lượng 3 ổ).
  • RAID 10 sẽ chỉ tạo được khi số ổ là chẵn, phải có tối thiểu từ ô ổ trở lên. Dung lượng bằng tổng số ổ chia đôi (10 ổ thì dung lượng sử dụng là 5 ổ).

5. Kỹ thuật LVM

  • Logical Volume Manager (LVM): là phương pháp cho phép ấn định không gian đĩa cứng thành những logical Volume khiến cho việc thay đổi kích thước trở nên dễ dàng hơn (so với partition). Với kỹ thuật Logical Volume Manager (LVM) bạn có thể thay đổi kích thước mà không cần phải sửa lại table của OS. Điều này thật hữu ich với những trường hợp bạn đã sử dụng hết phần bộ nhớ còn trống của partition và muốn mở rộng dung lượng của nó

6. Caching

  • Một cache (phát âm là CASH) là một nơi để lưu trữ một cái gì đó tạm thời trong một môi trường máy tính (computing environment).
    Trong máy tính, dữ liệu hoạt động thường được cache (lưu trữ) để rút ngắn thời gian truy cập dữ liệu, giảm độ trễ và cải thiện đầu vào (input)/ đầu ra (output), viết tắt là (I/ O). Bởi vì hầu hết tất cả các workload của ứng dụng phụ thuộc vào các hoạt động I/ O, caching được sử dụng để cải thiện hiệu suất ứng dụng.
  • .Vi xử lý (CPUs) và ổ đĩa cứng (HDD) thường xuyên sử dụng Cache,tương tự trình duyệt web và máy chủ (server).

7. Buffer

  • Là một vùng nhớ physical memory được dùng để làm vùng chứa data tạm thời trước khi chuyển đến một nơi khác. Ví dụ khi bạn cần đọc/ghi data từ/ra một thiết bị ngoại vi như disk, network, màn hình hoặc keyboard… Đây là vùng physical memory được cấp sẵn. Nhờ vậy, hệ thống sẽ không cần tốn công điều tác để cấp phát vùng nhớ mỗi khi sử dụng.

8. Inode

  • inodes là số file + folder, inode là một cấu trúc dữ liệu trong hệ thống tệp truyền thống của các họ Unix ví dụ như UFS hoặc EXT3. Inode lưu trữ thông tin về 1 file thông thường, thư mục, hay những đối tượng khác của hệ thống tệp tin.

8. Storage Performance Metric

  • IOPS — Input/Output per Second là đơn vị đo lường được sử dụng cho các thiết bị lưu trữ như HDD, SSD hoặc SAN — cho biết số lượng tác vụ Write hoặc Read được hoàn thành trong 1 giây. Số IOPS được publish bởi các nhà sản xuất thiết bị, và không liên quan gì đến các ứng dụng đo lường hiệu năng.
  • Đối với IOPS, thứ quan trọng nhất ta cần chú ý đến là tỉ lệ Read và Write (thông thường tỉ lệ này 70% (Read) và 30%(Write) — có thể tuỳ chỉnh được).
  • Sequential access: là thuật ngữ dùng để miêu tả việc đọc hoặc ghi các bit dữ liệu liên tiếp nhau. Đối với ổ cứng thông tường, các bit dữ liệu được lưu trữ trên các sector, nếu dữ liệu được lưu trữ trên các sector liên tiếp, việc đọc dữ liệu sẽ nhanh hơn vì thời gian tìm kiếm (seek time) sẽ giảm đi. Tương tự, nếu dữ liệu được ghi liên tiếp thì sẽ nhanh hơn vì chỉ tốn một vòng quay để ghi các sector liên tiếp.
  • Random access: là thuật ngữ dùng để miêu tả việc đọc hoặc ghi các bit dữ liệu ngẫu nhiên lộn xộn trên các sector phân bố ngẫu nhiên trên ổ cứng. Vì dữ liệu nằm rời rạc nên phải tốn thời gian tìm kiếm, nên vấn đề đọc/ghi dữ liệu random thường khá tốn thời gian. Hãy tưởng tượng bạn cần đọc một file hình ảnh có kích thước 400KB, tuy nhiên hình ảnh này được lưu tại 100 sector nằm rời rạc thì việc hiển thị hình ảnh này mất rất nhiều thời gian. Hiện tượng trên được gọi là phân mảnh ổ cứng và thường chúng ta sử dụng tool Disk Defragmenter để sắp xếp lại.
  • IOPS được sử dụng để đo lường hiệu suất sau:
  • IOPS đọc ngẫu nhiên (Random Read IOPS)
  • IOPS ghi ngẫu nhiên IOPS (Random Write IOPS)
  • IOPS đọc tuần tự (Sequential Read IOPS)
  • IOPS ghi tuần tự (Sequential Write IOPS)
  • Latency là thời gian ổ cứng bắt đầu thực hiện một data transfer (chuyển dữ liệu), chỉ số này càng thấp càng tốt. Latency bao gồm seek time (thời gian tìm vị trí dữ liệu) và rotational latency (độ trễ chuyển động quay của trục — SSD không bị tính thời gian này). Đối với HDD thông thường mất khoảng 10 phút seek time cho 100,000 IO, tuy nhiên với SSD, thời gian này rất nhỏ và được tính bằng microsecond (1 microcosecond = 0.000001 giây). Đây chính là lý do mà SSD có tốc độ phản hồi nhanh hơn rất nhiều lần so với HDD. Latency chính là độ trễ của việc đọc/ghi dữ liệu, vì vậy latency cũng không kém phần quan trọng trong hiệu suất của một ổ cứng.số lượng chuyến đi thưc hiện trong một khoảng thời gian là IOP.
  • Số hàng chuyển được trong một khoảng thời gian chính là throughput
  • Latency là độ trễ trung bình trong tất cả các chuyến đi trong một khoảng thời gian đã thực hiện

Ghi chép cá nhân.

--

--

Hung, Nguyen Trong
0 Followers

Vietnam OpenStack Community Member. OpenSource & Linux https://github.com/hungnt1