Sử dụng ATA Over Ethernet (AoE) trên CentOS 7 (Initiator và Target)

theanh

Administrator
Nhân viên
Hướng dẫn này giải thích cách bạn có thể thiết lập mục tiêu AoE và trình khởi tạo AoE (máy khách), cả hai đều chạy CentOS 7. AoE là viết tắt của "ATA qua Ethernet" và là giao thức mạng lưu trữ (SAN) cho phép trình khởi tạo AoE sử dụng các thiết bị lưu trữ trên mục tiêu AoE (từ xa) bằng cáp Ethernet thông thường. "Từ xa" trong trường hợp này có nghĩa là "bên trong cùng một mạng LAN" vì AoE không thể định tuyến ra bên ngoài mạng LAN (đây là sự khác biệt lớn so với iSCSI). Đối với người khởi tạo AoE, bộ lưu trữ từ xa trông giống như ổ cứng thông thường được gắn cục bộ.


1 Lưu ý sơ bộ​

Tôi đang sử dụng hai máy chủ CentOS 7 tại đây:
  • server1.example.com (Người khởi tạo): Địa chỉ IP 192.168.1.100
  • server2.example.com (Mục tiêu): Địa chỉ IP 192.168.1.101

2 Kích hoạt kho lưu trữ bổ sung​

server1/server2:

Đầu tiên, chúng tôi nhập khóa GPG cho các gói phần mềm:
Mã:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Sau đó, chúng ta kích hoạt kho lưu trữ EPEL trên hệ thống CentOS của mình vì nhiều gói mà chúng ta sẽ cài đặt trong hướng dẫn này không có trong kho lưu trữ CentOS 7 chính thức:
Mã:
yum -y install epel-release
Mã:
yum -y install yum-priorities
Chỉnh sửa /etc/yum.repos.d/epel.repo...
Mã:
nano /etc/yum.repos.d/epel.repo
... và thêm dòng priority=10 vào phần [epel]:
Mã:
[epel]name=Các gói bổ sung cho Enterprise Linux 7 - $basearch#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearchmirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearchfailovermethod=priorityenabled=1priority=10gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7[...]
Sau đó, chúng tôi cập nhật các gói hiện có của mình trên system:
Mã:
yum -y update

3 Đang tải Mô-đun Hạt nhân AoE trên cả hai Hệ thống​

server1/server2:

Trước khi bắt đầu, chúng ta phải đảm bảo rằng hạt nhân hỗ trợ AoE:
Mã:
grep ATA_OVER /boot/config-`uname -r`
Lệnh này sẽ hiển thị tương tự như sau:
Mã:
[root@server1 ~]# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[root@server1 ~]#
Điều này có nghĩa là AoE được xây dựng dưới dạng một mô-đun hạt nhân. Hãy kiểm tra xem mô-đun đã được tải chưa:
Mã:
lsmod | grep aoe
Nếu bạn không nhận được gì, điều này có nghĩa là nó không được tải. Trong trường hợp này, chúng ta có thể tải nó như sau:
Mã:
modprobe aoe
Hãy kiểm tra lại xem mô-đun đã được tải chưa:
Mã:
lsmod | grep aoe
Mã:
[root@server1 ~]# lsmod | grep aoe
aoe 54175 0
[root@server1 ~]#
Để mô-đun được tải tự động khi hệ thống khởi động, chúng ta thêm dòng sau vào /etc/rc.local:
Mã:
nano /etc/rc.local
Mã:
[...]modprobe aoe[...]

4 Thiết lập Máy chủ (Mục tiêu) trên Máy chủ 2​

server2:

Đầu tiên, chúng ta thiết lập mục tiêu (server2):
Mã:
rpm -ihttp://download.opensuse.org/repositories/home:/cyberorg:/ltsp/CentOS_7/x86_64/vblade-22-3.1.x86_64.rpm
Chúng ta có thể sử dụng các ổ đĩa logic, tệp hình ảnh, ổ cứng (ví dụ: /dev/sdb), phân vùng ổ cứng (ví dụ: /dev/sdb1) hoặc thiết bị RAID (ví dụ: /dev/md0) chưa sử dụng để lưu trữ.

Trong ví dụ này, tôi sẽ sử dụng tệp hình ảnh có dung lượng 10 GB nằm trong thư mục lưu trữ /storage.
Mã:
mkdir /storage
dd if=/dev/zero of=/storage/storage1.img bs=1024k count=10000
Điều này sẽ tạo một tệp hình ảnh /storage/storage1.img có kích thước là 10GB.

Nếu bạn muốn sử dụng ổ đĩa logic thay thế, thì bạn có thể tạo một ổ đĩa có kích thước là 10GB có tên là storage1 trong nhóm ổ đĩa vg0 như sau:
Mã:
lvcreate -L10G -n storage1 vg0
Bây giờ chúng ta xuất thiết bị lưu trữ của mình như sau:
Mã:
vbladed 0 1 ens33 /storage/storage1.img
Số đầu tiên (0) là số kệ (major), số thứ hai (1) là số khe (minor), hãy thay đổi các số này theo ý thích của bạn. Mỗi thiết bị AoE được xác định bằng một cặp major/minor phải là duy nhất (nếu bạn đang xuất nhiều thiết bị), với major nằm trong khoảng từ 0-65535 và minor nằm trong khoảng từ 0-255. Phần ens33 cho vbladed biết thiết bị Ethernet nào cần sử dụng, bạn có thể tìm hiểu thông tin chi tiết về thiết bị Ethernet của mình bằng cách chạy
Mã:
ifconfig
).

Để tự động bắt đầu xuất bất cứ khi nào bạn khởi động mục tiêu, hãy mở /etc/rc.local...
Mã:
nano /etc/rc.local
... và thêm dòng sau vào đó (sau dòng modprobe aoe!):
Mã:
[...]vbladed 0 1 ens33 /storage/storage1.img[...]

5 Thiết lập Máy khách (Bộ khởi tạo) trên Máy chủ 1​

server1:

Trên server1, chúng tôi cài đặt trình khởi tạo. Không có gói nào dành cho CentOS 7, nhưng gói từ centOS 6 hoạt động tốt, vì vậy chúng ta sẽ sử dụng gói đó ở đây.
Mã:
rpm -ihttp://download.opensuse.org/repositories/system:/aoetools/CentOS_CentOS-6/x86_64/aoetools-36-1.2.x86_64.rpm
Bây giờ chúng ta kiểm tra những thiết bị lưu trữ AoE nào khả dụng:
Mã:
aoe-discover
Lệnh
Mã:
aoe-stat
bây giờ sẽ hiển thị các thiết bị lưu trữ:
Mã:
[root@server1 ~]# aoe-stat
e0.1 10.485GB ens33 1024 up
[root@server1 ~]#
Lúc này, chúng ta có một thiết bị khối mới khả dụng trên hộp máy khách có tên /dev/etherd/e0.1. Nếu chúng ta xem cây /dev, một nút mới sẽ xuất hiện:
Mã:
ls -la /dev/etherd/
Mã:
[root@server1 ~]# ls -la /dev/etherd/
tổng số 0
drwxr-xr-x. 2 root root 160 30 tháng 6 14:49 .
drwxr-xr-x. 21 root root 3240 30 tháng 6 14:32 ..
c-w--w----. 1 root disk 152, 3 30 tháng 6 14:32 discover
brw-rw----. 1 root disk 152, 0 30 tháng 6 14:49 e0.1
cr--r----. 1 root disk 152, 2 Jun 30 14:32 err
c-w--w----. 1 root disk 152, 6 Jun 30 14:32 flush
c-w--w----. 1 root disk 152, 4 Jun 30 14:32 interfaces
c-w--w----. 1 root disk 152, 5 Jun 30 14:32 revalidate
[root@server1 ~]#
Để sử dụng thiết bị đó, chúng ta phải định dạng nó:
Mã:
fdisk /dev/etherd/e0.1
Mã:
[root@server1~]#fdisk/dev/etherd/e0.1
Thiết bị không chứa bảng phân vùng DOS hợp lệ, cũng không phải Sun, SGI hoặc nhãn đĩa OSF
Xây dựng nhãn đĩa DOS mới với mã định danh đĩa 0xed572fd4.
Những thay đổi sẽ chỉ nằm trong bộ nhớ, cho đến khi bạn quyết định ghi chúng.
Sau đó, tất nhiên, nội dung trước đó sẽ không thể khôi phục được.
 
 
Số lượng xi lanh cho ổ đĩa này là 2610.
Không có gì sai với điều đó, nhưng nó lớn hơn 1024,
và một số thiết lập nhất định có thể gây ra sự cố với:
1) phần mềm chạy tại thời điểm khởi động (ví dụ: phiên bản cũ của LILO)
2) phần mềm khởi động và phân vùng từ các hệ điều hành khác
(ví dụ: DOSFDISK, OS/2FDISK)
Cảnh báo: cờ không hợp lệ 0x0000 của bảng phân vùng4 sẽ được sửa bằng w(rite)
 
Lệnh(mforhelp):
 
Back
Bên trên