Lạc đề một chút: LR này là tổng hợp.
Một số nhiệm vụ được mô tả ở đây có thể được thực hiện đơn giản hơn nhiều, nhưng vì nhiệm vụ của l/r là tìm hiểu
với chức năng đột kích và lvm, một số thao tác phức tạp một cách giả tạo.
Yêu cầu về công cụ thực hiện LR:
Các công cụ ảo hóa như Virtualbox
Hình ảnh cài đặt Linux chẳng hạn Debian9
Có sẵn Internet để tải xuống một số gói
Kết nối qua ssh với VM đã cài đặt (tùy chọn)
ВНИМАНИЕ
Công việc trong phòng thí nghiệm này liên quan đến một vấn đề tế nhị như bảo mật dữ liệu - đây là lĩnh vực mà
cho phép bạn mất tất cả dữ liệu do lỗi nhỏ nhất - thêm một chữ cái hoặc số.
Vì bạn đang làm công việc trong phòng thí nghiệm nên bạn không gặp nguy hiểm gì, ngoại trừ việc bạn sẽ phải bắt đầu làm lại từ đầu.
Ở ngoài đời, mọi thứ nghiêm trọng hơn nhiều, vì vậy bạn nên nhập tên đĩa thật cẩn thận, hiểu rõ
chính xác thì bạn đang làm gì với lệnh hiện tại và bạn đang làm việc với đĩa nào.
Điểm quan trọng thứ hai là cách đặt tên đĩa và phân vùng: tùy theo tình huống, số đĩa có thể khác nhau.
từ những giá trị được trình bày trong các lệnh trong công việc trong phòng thí nghiệm.
Vì vậy, ví dụ nếu bạn loại bỏ đĩa sda khỏi mảng và sau đó thêm một đĩa mới, đĩa mới sẽ được hiển thị
trên một hệ thống có tên sda. Nếu bạn khởi động lại trước khi thêm ổ đĩa mới thì ổ đĩa mới sẽ
đĩa sẽ được đặt tên là sdb và đĩa cũ sẽ được gọi là sda
Lab phải được chạy dưới dạng superuser (root) vì hầu hết các lệnh đều yêu cầu
đặc quyền nâng cao và việc liên tục nâng cao đặc quyền thông qua sudo không có ý nghĩa gì
dd if=/dev/xxx of=/dev/yyy
7) làm việc với bảng phân vùng
phần
đĩa sf
mkfs.ext4
8) làm việc với bộ nạp khởi động
cài đặt grub /dev/XXX
Cập nhật-Grub.
9) linh tinh
lsof.
apt
rsync
Công việc trong phòng thí nghiệm bao gồm 3 phần:
thiết lập hệ thống làm việc bằng lvm, raid
mô phỏng một trong những lỗi đĩa
thay thế đĩa nhanh chóng, thêm đĩa mới và di chuyển phân vùng.
Nhiệm vụ 1 (Cài đặt hệ điều hành và cấu hình LVM, RAID)
1) Tạo một máy ảo mới, cung cấp cho nó các đặc điểm sau:
1 ram gb
1 CPU
2 ổ cứng (đặt tên là ssd1, ssd2 và gán kích thước bằng nhau, kiểm tra hộp trao đổi nóng và ssd)
Bộ điều khiển SATA được cấu hình cho 4 cổng
2) Bắt đầu cài đặt Linux và khi bạn chọn ổ cứng, hãy làm như sau:
Phương pháp phân vùng: thủ công, sau đó bạn sẽ thấy hình ảnh này:
Thiết lập phân vùng riêng cho /boot: Chọn đĩa đầu tiên và tạo bảng phân vùng mới trên đó
Kích thước phân vùng: 512M
Điểm gắn kết: /boot
Lặp lại cài đặt cho đĩa thứ hai, nhưng vì bạn không thể gắn /khởi động hai lần cùng một lúc, nên hãy chọn điểm gắn kết: không, cuối cùng nhận được kết quả sau (hình ảnh có jamb, quá lười để làm lại):
Thiết lập RAID:
Chọn dung lượng trống trên đĩa đầu tiên và định cấu hình loại phân vùng làm ổ đĩa vật lý cho RAID
Chọn "Xong thiết lập phân vùng"
Lặp lại chính xác các cài đặt tương tự cho đĩa thứ hai, dẫn đến kết quả như sau:
Chọn "Cấu hình RAID phần mềm"
Tạo thiết bị MD
Loại thiết bị RAID phần mềm: Chọn một mảng được phản chiếu
Thiết bị đang hoạt động cho mảng RAID XXXX: Chọn cả hai ổ đĩa
Thiết bị dự phòng: Để mặc định số 0
Các thiết bị đang hoạt động cho mảng RAID XX: chọn các phân vùng mà bạn đã tạo khi đột kích
Kết thúc
Kết quả là bạn sẽ có được một bức ảnh như thế này:
Định cấu hình LVM: Chọn Định cấu hình Trình quản lý khối hợp lý
Giữ bố cục phân vùng hiện tại và định cấu hình LVM: Có
Tạo nhóm âm lượng
Tên nhóm tập tin: hệ thống
Thiết bị cho nhóm âm lượng mới: Chọn RAID đã tạo của bạn
Tạo khối lượng hợp lý
tên khối lượng logic: root
kích thước khối lượng hợp lý: 25 kích thước đĩa của bạn
Tạo khối lượng hợp lý
tên khối lượng logic: var
kích thước khối lượng hợp lý: 25 kích thước đĩa của bạn
Tạo khối lượng hợp lý
tên khối lượng logic: log
kích thước khối lượng hợp lý: 15 kích thước đĩa của bạn
Bằng cách chọn Hiển thị chi tiết cấu hình, bạn sẽ nhận được hình ảnh sau:
Khi bạn đã hoàn tất thiết lập LVM, bạn sẽ thấy như sau:
Bố cục phân vùng: từng cái một, chọn từng ổ được tạo trong LVM và bố trí chúng, ví dụ cho root như thế này:
Sử dụng như: ext4
điểm gắn kết: /
Kết quả đánh dấu phân vùng gốc sẽ như thế này:
lặp lại thao tác phân vùng cho var và log, chọn các điểm gắn kết thích hợp (/var và /var/log được nhập thủ công), thu được kết quả sau:
Chọn Hoàn tất phân vùng
Bạn sẽ được hỏi một số câu hỏi về việc bạn vẫn còn một phân vùng chưa được gắn kết và trao đổi chưa được định cấu hình. Cả hai câu hỏi nên được trả lời ở dạng phủ định.
Kết quả cuối cùng sẽ trông như thế này:
3) Hoàn tất cài đặt hệ điều hành bằng cách cài đặt grub trên thiết bị đầu tiên (sda) và khởi động hệ thống.
4) Sao chép nội dung của phân vùng /boot từ ổ sda (ssd1) sang ổ sdb (ssd2)
Liệt kê tất cả các đĩa mà lệnh trước đó đã cung cấp cho bạn và mô tả loại đĩa đó là gì
Tìm ổ đĩa chưa cài đặt grub và thực hiện cài đặt này: grub-install /dev/sdb
xem thông tin về cuộc đột kích hiện tại bằng lệnh cat /proc/mdstat và ghi lại những gì bạn nhìn thấy.
nhìn vào đầu ra của các lệnh: pvs, vgs, lvs, mount và viết ra chính xác những gì bạn đã thấy
Hãy mô tả bằng lời của bạn những gì bạn đã làm và kết quả bạn đạt được từ nhiệm vụ đó.
Sau khi hoàn thành tác vụ này, nên lưu một bản sao lưu của thư mục máy ảo hoặc tạo
hộp lang thang: https://t.me/bykvaadm/191
Kết quả: Máy ảo có ổ đĩa ssd1, ssd2
Nhiệm vụ 2 (Mô phỏng lỗi của một trong các đĩa)
1) Nếu bạn đã chọn hộp trao đổi nóng thì bạn có thể xóa đĩa nhanh chóng
Xóa đĩa ssd1 trong thuộc tính máy
Tìm thư mục lưu trữ các tệp máy ảo của bạn và xóa ssd1.vmdk
2) Đảm bảo máy ảo của bạn vẫn đang chạy
3) Khởi động lại máy ảo và đảm bảo nó vẫn chạy
4) kiểm tra trạng thái của mảng RAID: cat /proc/mdstat
5) thêm một đĩa mới có cùng kích thước vào giao diện VM và đặt tên là ssd3
6) thực hiện các thao tác:
xem đĩa mới đã đến hệ thống bằng cách sử dụng fdisk -l
sao chép bảng phân vùng từ đĩa cũ sang đĩa mới: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
xem kết quả bằng fdisk -l
Thêm một đĩa mới vào mảng đột kích: mdadm —manage /dev/md0 —add /dev/YYY
Nhìn vào kết quả: cat /proc/mdstat. Bạn sẽ thấy quá trình đồng bộ hóa đã bắt đầu
7) Bây giờ bạn cần đồng bộ hóa thủ công các phân vùng không thuộc RAID.
Để thực hiện việc này, chúng tôi sẽ sử dụng tiện ích dd, sao chép từ đĩa “trực tiếp” sang đĩa mới mà bạn đã cài đặt gần đây
dd if=/dev/XXX of=/dev/YYY
8) Sau khi đồng bộ hóa hoàn tất, hãy cài đặt grub trên ổ đĩa mới
9) Khởi động lại VM để đảm bảo mọi thứ đều hoạt động
Hãy mô tả bằng lời của bạn những gì bạn đã làm và kết quả bạn đạt được từ nhiệm vụ đó.
Kết quả: Đĩa ssd1 đã bị xóa, đĩa ssd2 đã được lưu, đĩa ssd3 đã được thêm vào.
Nhiệm vụ 3 (Thêm đĩa mới và di chuyển phân vùng)
Đây là nhiệm vụ phức tạp và đồ sộ nhất trong tất cả các nhiệm vụ được trình bày.
Kiểm tra thật cẩn thận những gì bạn đang làm, với những đĩa và phân vùng nào.
Nên tạo một bản sao trước khi chạy nó.
Nhiệm vụ này độc lập với nhiệm vụ số 2, nó có thể được thực hiện sau nhiệm vụ số 1, được điều chỉnh theo tên đĩa.
Phần thứ hai của nhiệm vụ thí nghiệm này sẽ dẫn đến trạng thái giống hệt như sau khi hoàn thành phần đầu tiên.
Để làm cho công việc của bạn dễ dàng hơn, tôi có thể khuyên bạn không nên gỡ bỏ đĩa khỏi máy chủ một cách vật lý mà chỉ
ngắt kết nối chúng trong thuộc tính máy. Từ quan điểm của hệ điều hành trong VM, nó sẽ trông giống hệt nhau, nhưng bạn có thể
nếu có chuyện gì xảy ra, hãy kết nối lại đĩa và tiếp tục công việc bằng cách quay lại một vài điểm, nếu
bạn đang gặp vấn đề. Ví dụ: bạn có thể đã thực hiện không chính xác hoặc quên sao chép phân vùng /boot sang đĩa mới.
Tôi chỉ có thể khuyên bạn kiểm tra kỹ những đĩa và phân vùng nào bạn đang làm việc với nhiều lần, hoặc thậm chí tốt hơn
Viết ra một tờ giấy sự tương ứng giữa các đĩa, phân vùng và số đĩa "vật lý". Cây đẹp và trong trẻo
đội hòa lsblk, hãy sử dụng nó thường xuyên nhất có thể để phân tích những gì bạn đã làm và những gì cần phải làm.
Đến câu chuyện...
Hãy tưởng tượng rằng máy chủ của bạn đã chạy được một thời gian dài trên 2 ổ SSD thì đột nhiên...
1) Mô phỏng lỗi đĩa ssd2 bằng cách xóa đĩa khỏi thuộc tính VM và khởi động lại
2) Xem trạng thái hiện tại của đĩa và RAID:
5) Trước hết, bạn nên quan tâm đến sự an toàn của dữ liệu trên đĩa cũ.
Lần này chúng tôi sẽ chuyển dữ liệu bằng LVM:
Trước hết, bạn cần sao chép bảng tệp từ đĩa cũ sang đĩa mới:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Thay thế các đĩa chính xác cho x, y và tìm hiểu xem lệnh này làm gì.
Chạy lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT và so sánh đầu ra của nó với lệnh gọi trước đó.
Điều gì đã thay đổi?
sử dụng lệnh dd để sao chép dữ liệu/boot sang đĩa mới
dd if=/dev/XXX of=/dev/YYY
nếu /boot vẫn được gắn trên đĩa cũ, thì nó sẽ được gắn lại vào đĩa trực tiếp:
mount | grep boot # смотрим куда смонтирован диск
lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
umount /boot # отмонтируем /boot
mount -a # выполним монтирование всех точек согласно /etc/fstab.
# Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
Cài đặt bootloader trên ổ ssd mới
grub-install /dev/YYY
Tại sao chúng tôi thực hiện hoạt động này?
tạo một mảng đột kích mới chỉ bao gồm một đĩa ssd mới:
Lệnh trên sẽ không hoạt động nếu không chỉ định một khóa đặc biệt.
Đọc trợ giúp và thêm khóa này vào lệnh.
Sử dụng lệnh cat /proc/mdstat để kiểm tra kết quả thao tác của bạn. Điều gì đã thay đổi?
Chạy lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT và so sánh đầu ra của nó với lệnh gọi trước đó.
Điều gì đã thay đổi?
6) Bước tiếp theo là cấu hình LVM
chạy lệnh pvs để xem thông tin về ổ đĩa vật lý hiện tại
tạo một ổ đĩa vật lý mới bao gồm mảng RAID đã tạo trước đó:
pvcreate /dev/md63
Chạy lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT và so sánh đầu ra của nó với lệnh gọi trước đó.
Điều gì đã thay đổi?
Chạy lại lệnh pvs. Điều gì đã thay đổi?
Hãy tăng kích thước của hệ thống Volume Group bằng lệnh sau:
vgextend system /dev/md63
Chạy lệnh và viết ra những gì bạn đã thấy và những gì đã thay đổi.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
LV var,log,root hiện nằm trên đĩa vật lý nào?
Di chuyển dữ liệu từ ổ đĩa cũ sang ổ đĩa mới, sử dụng tên thiết bị chính xác.
Chạy lệnh và viết ra những gì bạn đã thấy và những gì đã thay đổi.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Hãy thay đổi VG của chúng ta bằng cách xóa đĩa đột kích cũ khỏi nó. Thay thế tên đột kích chính xác.
vgreduce system /dev/md0
Chạy lệnh và viết ra những gì bạn đã thấy và những gì đã thay đổi.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
Để làm cho hình ảnh đẹp hơn, hãy kết nối lại /boot vào đĩa ssd thứ hai (ssd4) và chạy lsblk. Kết quả là đĩa ssd3 không
không có gì nên được gắn kết. Kiểm tra cẩn thận xem phân vùng /boot có trống không! ls /boot phải thể hiện
một số tập tin và thư mục. Nghiên cứu những gì được lưu trữ trong phần này và ghi lại thư mục tệp nào chịu trách nhiệm về những gì.
7) tháo đĩa ssd3 và thêm ssd5, hdd1, hdd2 theo thông số kỹ thuật mô tả ở trên, dẫn đến:
ssd4 - ssd mới đầu tiên
ssd5 - ssd mới thứ hai
hdd1 - hdd mới đầu tiên
hdd2 - hdd mới thứ hai
8) Kiểm tra xem điều gì đã xảy ra sau khi thêm đĩa:
9) Hãy khôi phục hoạt động của mảng đột kích chính:
sao chép bảng phân vùng, thay thế các đĩa chính xác:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Xin lưu ý rằng khi chúng tôi sao chép bảng phân vùng từ đĩa cũ, có vẻ như kích thước mới
không sử dụng hết dung lượng ổ cứng.
Do đó, chúng ta sẽ sớm cần thay đổi kích thước phân vùng này và mở rộng cuộc đột kích.
Hãy tự mình xem bằng cách chạy lệnh:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) sao chép phân vùng khởi động /boot từ ssd4 sang ssd5
dd if=/dev/XXX of=/dev/YYY
11) Cài đặt grub trên ổ đĩa mới (ssd5)
12) thay đổi kích thước phân vùng thứ hai của đĩa ssd5
chạy tiện ích phân vùng đĩa:
fdisk /dev/XXX
nhập phím d để xóa phân vùng hiện có (chọn 2)
nhập key n để tạo phân vùng mới
nhập khóa p để cho biết loại phân vùng là “chính”
nhập key 2 để phân vùng mới có số thứ XNUMX
Khu vực đầu tiên: nhấn enter để chấp nhận kích thước được tính toán tự động của phần đầu phân vùng
Khu vực cuối cùng: nhấn enter để chấp nhận kích thước được tính toán tự động của phần cuối phân vùng
nhập phím l để xem danh sách tất cả các loại phân vùng có thể có và tìm Linux raid auto trong đó
nhập phím t để thay đổi loại phân vùng đã tạo (2) và nhập số tìm được ở bước trước.
nhập phím w để ghi thay đổi vào đĩa.
12) đọc lại bảng phân vùng và kiểm tra kết quả
thêm một đĩa mới vào mảng đột kích hiện tại (đừng quên thay thế các đĩa chính xác)
mdadm --manage /dev/md63 --add /dev/sda2
Hãy mở rộng số lượng đĩa trong mảng của chúng tôi lên 2:
mdadm --grow /dev/md63 --raid-devices=2
Nhìn vào kết quả: chúng ta có 2 mảng được đánh dấu, nhưng cả hai phần trong mảng này có kích thước khác nhau
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) tăng kích thước phân vùng trên đĩa ssd4
chạy tiện ích phân vùng đĩa:
fdisk /dev/XXX
nhập phím d để xóa phân vùng hiện có (chọn 2)
nhập key n để tạo phân vùng mới
nhập khóa p để cho biết loại phân vùng là “chính”
nhập key 2 để phân vùng mới có số thứ XNUMX
Khu vực đầu tiên: nhấn enter để chấp nhận kích thước được tính toán tự động của phần đầu phân vùng
Khu vực cuối cùng: nhấn enter để chấp nhận kích thước được tính toán tự động của phần cuối phân vùng
Khi kết thúc đánh dấu, chọn Không để để lại chữ ký thành viên của phân vùng trong mảng.
nhập phím w để ghi thay đổi vào đĩa.
12) đọc lại bảng phân vùng và kiểm tra kết quả
Xin lưu ý rằng hiện tại các phân vùng sda2, sdc2 có kích thước > kích thước của thiết bị đột kích.
13) ở giai đoạn này, quy mô đột kích có thể được mở rộng
mdadm --grow /dev/md63 --size=max
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result
Xem lại lsblk và lưu ý những gì đã thay đổi
14) Tuy nhiên, mặc dù chúng tôi đã thay đổi kích thước của cuộc đột kích, nhưng kích thước của vg root,var,log không thay đổi
nhìn vào kích thước PV:
pvs
Hãy mở rộng quy mô PV của chúng tôi:
pvresize /dev/md63
nhìn vào kích thước PV:
pvs
15) Thêm vị trí mới xuất hiện VG var,root
lvs # посмотрим сколько сейчас размечено
lvextend -l +50%FREE /dev/system/root
lvextend -l +100%FREE /dev/system/var
lvs # проверьте что получилось
Tại thời điểm này, bạn đã hoàn tất việc di chuyển mảng chính sang các đĩa mới. làm việc với ssd1, ssd2 đã hoàn thành
16) Nhiệm vụ tiếp theo của chúng ta là di chuyển /var/log sang các đĩa mới, để làm được điều này, chúng ta sẽ tạo một mảng và lvm mới trên các đĩa hdd.
hãy tạo một PV mới về cuộc đột kích từ các đĩa lớn
pvcreate data /dev/md127
Hãy tạo một nhóm trong PV này có tên là data
vgcreate data /dev/md127
Hãy tạo một khối hợp lý với kích thước của tất cả không gian trống và gọi nó là val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
định dạng phân vùng đã tạo trong ext4
mkfs.ext4 /dev/mapper/data-var_log
hãy xem kết quả
lsblk
17) chuyển dữ liệu nhật ký từ phân vùng cũ sang phân vùng mới
tạm thời cài đặt bộ lưu trữ nhật ký mới
mount /dev/mapper/data-var_log /mnt
hãy đồng bộ hóa các phân vùng
apt install rsync
rsync -avzr /var/log/ /mnt/
Hãy cùng tìm hiểu xem tiến trình nào hiện đang chạy trong /var/log
apt install lsof
lsof | grep '/var/log'
dừng các quá trình này
systemctl stop rsyslog.service syslog.socket
thực hiện đồng bộ hóa lần cuối các phân vùng (dữ liệu có thể đã thay đổi kể từ lần đồng bộ hóa cuối cùng)
rsync -avzr /var/log/ /mnt/
trao đổi các phần
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
hãy kiểm tra xem chuyện gì đã xảy ra
lsblk
18) Chỉnh sửa /etc/fstab
fstab - một tệp ghi lại các quy tắc mà phân vùng sẽ được gắn khi khởi động
Nhiệm vụ của chúng ta là tìm dòng nơi /var/log được gắn kết và sửa thiết bị system-log trên data-var_log
19) Điều quan trọng nhất ở giai đoạn này là đừng quên thay đổi bảng radela (ví dụ ext4). Bởi vì dù chúng tôi có thay đổi bất kỳ cuộc đột kích, lvm nào, cho đến khi FS trên phân vùng được thông báo rằng kích thước phân vùng hiện đã thay đổi, chúng tôi sẽ không thể sử dụng không gian mới. Sử dụng lệnh resize2fs để thay đổi FS.
20) Hợp âm cuối cùng
Hãy khởi động lại. Nếu bạn đã làm đúng mọi thứ, bạn sẽ được đưa trở lại hệ điều hành của mình (điều này là cần thiết để đảm bảo rằng mọi thứ đều hoạt động. Bước này không có ý nghĩa gì ngoài việc tự kiểm tra)
kiểm tra xem mọi thứ chúng tôi muốn làm đã thực sự được thực hiện chưa:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [TÙY CHỌN] Thực hiện theo các bước
khởi động lại bằng cách nhấn F12 để chỉ định các ổ đĩa khác nhau khi khởi động để đảm bảo bạn có thể khởi động được
từ bất kỳ ổ ssd nào, để chúng ta không sợ một trong số chúng bị hỏng
bây giờ bạn có nhật ký LV không cần thiết trong hệ thống VG. Phân bổ không gian này giữa root hoặc var, nhưng thay vì sử dụng
thiết kế MIỄN PHÍ 100% chỉ định kích thước bằng tay bằng phím -L:
-L 500M
khắc phục sự cố /boot nằm trên hai phân vùng không đồng bộ hóa, không cần thực hiện chính xác,
nó được thêm vào đây làm ví dụ. Trước tiên đừng quên sao chép nội dung của /boot ở đâu đó.
tạo một cuộc đột kích mới và bao gồm sda1,sda2 trong đó
bao gồm các phân vùng này trong cuộc đột kích hiện có và khôi phục/khởi động vào cuộc đột kích chính nhưng không cần gắn nó.