Nhảy tới nội dung

Một bài viết được gắn thẻ "linux"

Xem tất cả Thẻ

· Một phút để đọc
ManhPT

Trên các hệ thống hạ tầng cloud, sau khi sizing (bổ sung dung lượng) ổ đĩa ảo (volume), ta cần phải thực hiện thêm một vài lệnh đặc thù trên từng phân vùng ổ đĩa (partition) để hệ thống thực sự nhận diện được dung lượng mới thêm.

Chú ý: Trước khi cập nhật dụng lượng trên ổ đĩa có chứa dữ liệu quan trọng thì ta nên backup dữ liệu hoặc tạo snapshot cho ổ đĩa đó trên các hệ thống cloud mà có hỗ trợ tính năng snapshot.

Các bước cơ bản

Sau đó, thực hiện cập nhật dung lượng phân vùng theo các bước sau:

  1. Việc tăng thêm dung lượng cho ổ đĩa ảo không đồng thời tăng dung lượng cho phân vùng bên trong nó. Do đó, ta cần phải kiểm tra xem phân vùng cần tăng thêm dung lượng có nằm bên trong ổ đĩa vừa được bổ sung dung lượng hay không.
  2. Thực hiện các câu lệnh đặc thù để tăng dung lượng cho các phân vùng dựa trên định dạng của phân vùng đó.

Nội dung bài viết hiện tại chỉ hướng dẫn cách tăng dung lượng phân vùng cho các sử dụng định dạng: xfs, ext4 trên các máy chủ ảo của AWS, GCP, Azure hoặc VMWare.

Các bước chi tiết

Trong ví dụ sau, giả sử bạn đã tăng dung lượng ổ đĩa...

1. Kiểm tra định dạng của phân vùng cần tăng bằng câu lệnh df -hT

$ df -hT

Sau đây là kết quả mà bạn sẽ nhận được

$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda1 ext4 8.0G 1.9G 6.2G 24% /
/dev/xvdf1 xfs 8.0G 45M 8.0G 1% /data

2. Kiểm tra phân vùng cần tăng dung lượng có nằm trong ổ đĩa đã được bổ sung dung lượng không bằng lệnh lsblk

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 30G 0 disk
└─xvdf1 202:81 0 8G 0 part /data

Từ kết quả trên ta thấy:

  • Ổ đĩa /dev/xvda có 1 phân vùng là /dev/xvda1. Trong khi dung lượng ổ đĩa là 16G thì dung lượng phân vùng chỉ có 8G nên có thể tăng dung lượng cho phân vùng /dev/xvda1.
  • Ổ đĩa /dev/xvdf có 1 phân vùng là /dev/xvdf1. Trong khi dung lượng ổ đĩa là 30G thì dung lượng phân vùng chỉ có 8G nên có thể tăng dung lượng cho phân vùng /dev/xvdf1.

3. Thực hiện tăng dung lượng phân vùng bằng lệnh growpart

ubuntu@ip-172-31-13-xxx:~$ sudo growpart /dev/xvda 1
ubuntu@ip-172-31-13-xxx:~$ sudo growpart /dev/xvdf 1

Nếu phân vùng có định dạng xfs, dùng lệnh xfs_growfs:

ubuntu@ip-172-31-13-xxx:~$ sudo xfs_growfs -d /
ubuntu@ip-172-31-13-xxx:~$ sudo xfs_growfs -d /data

Nếu xfs_growfs chưa tồn tại thì cài đặt bằng cách:

for debian/ubuntu-based
ubuntu@ip-172-31-13-xxx:~$ sudo apt-get install xfs_growfs
for centos/rehl-based
ubuntu@ip-172-31-13-xxx:~$ sudo yum install xfs_growfs

Nếu phân vùng có định dạng ext4, dùng lệnh resize2fs:

ubuntu@ip-172-31-13-xxx:~$ sudo resize2fs /dev/xvda1
ubuntu@ip-172-31-13-xxx:~$ sudo resize2fs /dev/xvdf1

Kiểm tra lại kết quả thay đổi với df -h

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 16G 1.9G 14G 12% /
/dev/xvdf1 30G 45M 30G 1% /data

Bài viết có tham khảo và dịch lại từ: Extending a Linux file system after resizing a volume - Amazon Elastic Compute Cloud

· Một phút để đọc
ManhPT

Vấn đề là...

Bài viết này hướng dẫn nhanh cách thay đổi hostname trên Ubuntu 18.04.

Hostname thường được thiết lập khi bạn cài đặt hệ điều hành hoặc khởi tạo một máy chủ ảo (VM) thì nó sẽ được gán tự động. Cách thay đổi hostname dưới đây có thể áp dụng mà không cần phải khởi động lại hệ điều hành.

Mặc dù hướng dẫn dành cho Ubuntu 18.04 nhưng bạn có thể áp dụng nó cho Ubuntu 16.04 hoặc bất kỳ hệ điều hành nào base trên Ubuntu, VD: Linux Mint, Elementary OS và thậm chí cả ViettelOS.

Yêu cầu

Trước khi bắt đầu, hãy đảm bảo bạn đã đăng nhập với user có quyền sudo.

Hostname là một nhãn giúp định danh máy tính/thiết bị trong một không gian mạng (network). Hãy cẩn thận và tránh sử dụng trùng hostname trên 2 máy khác nhau trong cùng mạng.

Hiển thị hostname hiện tại

hostnamectl

Kết quả của lệnh trên sẽ như sau: Như trong ảnh trên thì hostname hiện tại là giá trị của Static hostname, tức là: ubuntu1804.localdomain.

Thay đổi hostname

1. Thay đổi hostname sử dụng hostnamectl

Trong Ubuntu 18.04, bạn có thể thay đổi hostname hệ thống và các thiết lập liên quan bằng lệnh hostnamectl. Ví dụ, để thay đổi system hostname thành "manhpt.local", bạn sẽ sử dụng lệnh như sau:

sudo hostnamectl set-hostname manhpt.local

Lệnh hostnamectl set-hostname không tạo hay hiển thị ra output gì. Nếu thành không thì sẽ không có gì cả.

2. Sửa file /etc/hosts

Mở file /etc/hosts và thay đổi hostname cũ thành "manhpt.local":

/etc/hosts
127.0.0.1 localhost
127.0.0.1 manhpt.local

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

3. Sửa file /etc/cloud/cloud.cfg

Nếu cloud-init package được cài đặt thì bạn cần phải sửa file cloud.cfg để đảm bảo hostname mới được lưu sau khi khởi động lại hệ điều hành. cloud-init thường được cài đặt mặc định trong hệ thống của AWS, VMWare... và nó được sử dụng để xử lý công đoạn khởi tạo máy ảo (cloud instances).

Để kiểm tra xem cloud-init có được cài đặt hay không thì có thể sử dụng lệnh ls:

ls -l /etc/cloud/cloud.cfg

Nếu bạn thấy câu lệnh trả ra kết quả như sau thì không cần làm thêm gì nữa vì cloud-init không được cài đặt, tức là có thể không cần tiếp tục đọc bài viết này nữa 🤣:

ls: cannot access '/etc/cloud/cloud.cfg': No such file or directory

Nếu cloud-init được cài đặt thì output sẽ như sau:

-rw-r--r-- 1 root root 3169 Apr 27 09:30 /etc/cloud/cloud.cfg

Sửa file /etc/cloud/cloud.cfg với vim hoặc nano hoặc bất cứ editor nào bạn muốn:

sudo vim /etc/cloud/cloud.cfg

Tìm preserve_hostname và đổi giá trị từ false thành true:

/etc/cloud/cloud.cfg
...
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true
...

Lưu lại thay đổi và tắt editor.

Kiểm tra thay đổi

Để kiểm tra xem các thay đổi của bạn đã thành công hay chưa thì chỉ cần sử dụng lại lệnh hostnamectl.

hostnamectl

Kết quả:

Static hostname: manhpt.local
Icon name: computer-vm
Chassis: vm
Machine ID: 6f17445f53074505a008c9abd8ed64a5
Boot ID: 1c769ab73b924a188c5caeaf8c72e0f4
Virtualization: kvm
Operating System: Ubuntu 18.04 LTS
Kernel: Linux 4.15.0-22-generic
Architecture: x86-64

Bạn sẽ thấy giá trị của Static hostname được đổi thành manhpt.local. Bạn cũng có thể khởi động lại máy và kiểm tra lại một lần nữa để chắc chắn rằng cloud-init được cấu hình chính xác. Bài viết có tham khảo và dịch lịch từ: How to Change Hostname on Ubuntu 18.04

· Một phút để đọc
ManhPT

Vấn đề là...

Ubuntu là một trong những distro phổ biến nhất của Linux. Ngoài Ubuntu Server thì Ubuntu Desktop cũng được anh em developer sử dụng rất nhiều. Do tính chất dễ sử dụng và ổn định nên team dự án của mình hiện tại đang sử dụng Ubuntu Desktop cho những máy trạm (workstation) đặt tại địa điểm, văn phòng của đối tác.

Thực trạng này đôi khi phát sinh yêu cầu phải thay đổi local IP và DNS của máy trạm cho phù hợp với địa điểm triển khai. Tuy nhiên, các máy trạm này lại không được kết nối màn hình mà chỉ được duy trì kết nối internet và kết nối từ xa qua Anydesk.

Để thực hiện yêu cầu thay đổi IP/DNS của máy trạm, team phát triển chỉ có thể thao tác thông qua Terminal sau khi forward và kết nối đến SSH port của máy trạm từ máy làm việc. Việc forward và kết nối SSH đến máy trạm qua Anydesk sẽ nằm trong bài viết khác.

Để thay đổi IP

nmcli connection modify "Wired Connection 1" ipv4.addresses 192.168.1.101

Để thay đổi DNS

nmcli connection modify "Wired Connection 1" ipv4.dns 8.8.8.8,8.8.4.4

Để cập nhật thay đổi

systemctl restart NetworkManager.service

Trong bài viết có sử dụng nmcli để thực hiện thay đổi cấu hình của các network connection của NetworkManager. Tham khảo nmcli referencenmcli examples.