大數據集羣使用centos7.0下基於docker的DatastaxEnterprise系統,datastax版本5.0.4,spark1.6.2,cassandra3.0.10。
隨着任務的進行,數據量不斷增多,當集羣容量不滿足數據增長的情況下,爲節省成本,選擇磁盤擴容。
以下爲具體操作:
1.購買磁盤空間裝到服務器上
2.在服務器上找到該磁盤對應的名稱
3.格式化磁盤
4.新建臨時文件夾
5.將該磁盤掛載到臨時文件夾下
6.copy源文件到該臨時文件夾下
7.關閉docker
8.將源文件所在的文件夾改名。目的是確保數據安全,防止操作時誤操作導致數據丟失
9.新建剛改名的空文件夾,fstab的時候要指示該路徑
10.修改空文件的權限,記得最後掛載完成以後要再改一下掛載到它下面的文件的權限
11.從臨時文件 卸載磁盤
12.修改 /etc/fstab
13.重啓機器
14.啓動docker
15.測試:(1)查看日誌
(2)把內存中的數據flush到磁盤,檢查文件大小會不會改變
16.在確保上述完成無誤並且數據在掛載完的磁盤上工作正常,謹慎刪除改名後的源文件
shell腳本僅供參考:
!/bin/bash
#set source_dir,export_dir
SOURCE_DIR="/data/dse/lib/cassandra/data/keyspace_name"
EXPORT_DIR="/root/tmp2"
#get data disk device id, like /dev/vdd
fdisk -l
#set DEVID
DEVID="/dev/vdc"
#enter "m n p return return 1 wq" for format disk
fdisk $DEVID
#format to ext4
mkfs.ext4 $DEVID"1"
#make EXPORT_DIR to insure folder exits
mkdir -p $EXPORT_DIR
#mount partition_disk to temp_files
mount $DEVID"1" $EXPORT_DIR
#copy SOURCE_DIR data to temp_files
cp -r ${SOURCE_DIR}/* ${EXPORT_DIR}
#stop container
docker stop container
#modify data to old_data for ensure_safety
mv ${SOURCE_DIR} ${SOURCE_DIR}_old
#make folder which originally_available
mkdir -p ${SOURCE_DIR}
#change_permission
chown -R 1000.1000 ${SOURCE_DIR}
umount ${DEVID}"1"
#modify /etc/fstab
echo "${DEVID}1 ${SOURCE_DIR} ext4 defaults 0 0">>/etc/fstab
#reboot
reboot
#start container
docker start container
#check it yes_or_no
#docker logs -f -t --tail="10" container
#delete ensure_safety_file
rm -rf ${SOURCE_DIR}_old