์ค๋
์ท์ด๋ ํด๋ก ์ด ์๋ ์ ์ฒด ๋ณผ๋ฅจ์ด ์๋ ํ๋์ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ์์คํ
(DSS) ๋ด์์ ๋ณผ๋ฅจ์ ์ ์ฒด ๋ณต์ฌ๋ณธ์ ๊ฐ์ ธ์์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์คํ ๋ฆฌ์ง ์์คํ
์ด ์์ฒด ์๋จ์ ์ฌ์ฉํ์ฌ ๋ด๋ถ์ ์ผ๋ก ์ด ์์
์ ์ํํ๋ ๊ฒ์ ํญ์ ํ์ฉํ๋ ๊ฒ์ ์๋๋๋ค. ์ ์ผํ ์ต์
์ ์๋ฒ๋ฅผ ํตํด ๋ณต์ฌํ๋ ๊ฒ ๊ฐ์ง๋ง ์ด ๊ฒฝ์ฐ ์ ์ฒด ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ์๋ฒ ์์ฒด, ๋คํธ์ํฌ, ์คํ ๋ฆฌ์ง ์์คํ
๋ฐ ์คํ ๋ฆฌ์ง ํฌํธ๋ฅผ ํตํด ์ด๋ฌํ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ๋ก๋ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์คํ ๋ฆฌ์ง ์์คํ
์์ฒด ๋ด์์ ๋ชจ๋ ์์
์ ์ํํ ์ ์๋ SCSI ๋ช
๋ น์ด ์์ผ๋ฉฐ ์์คํ
์ด VMware์ VAAI๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ XCOPY(EXTENDED COPY) ๋ช
๋ น์ด ๊ฑฐ์ 100% ์ง์๋ฉ๋๋ค. ํ๋ก์ธ์ค ์๋ฒ ๋ฐ ๋คํธ์ํฌ๋ฅผ ํฌํจํ์ง ์๊ณ ๋ณต์ฌํ ์์น์
๋๋ค.
๋ชจ๋ ๊ฒ์ด ๋จ์ํด์ผ ํ ๊ฒ ๊ฐ์ง๋ง ๊ธฐ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ๋ก ์ฐพ์ ์ ์์ด์ ๋ฐํด๋ฅผ ๋ค์ ๋ง๋ค์ด์ผ ํ์ต๋๋ค. ์๋ฒ OS๋ก๋ Linux๋ฅผ ์ ํํ๊ณ , ๋ณต์ฌ ๋๊ตฌ๋ก๋ ddpt ๋ช
๋ น(http://sg.danny.cz/sg/ddpt.html)์ ์ ํํ์ต๋๋ค. ์ด ์กฐํฉ์ ์ฌ์ฉํ๋ฉด ์คํ ๋ฆฌ์ง ์์คํ
์ธก์์ ๋ธ๋ก๋ณ๋ก ๋ณต์ฌ๊ฐ ๋ฐ์ํ๋ฏ๋ก ๋ชจ๋ OS์์ ๋ชจ๋ ๋ณผ๋ฅจ์ ๋ณต์ฌํ ์ ์์ต๋๋ค. ๋ธ๋ก ๋จ์๋ก ๋ณต์ฌํด์ผ ํ๊ณ ๋ธ๋ก ์๋ฅผ ๊ณ์ฐํด์ผ ํ๋ฏ๋ก ์ด๋ฌํ ๋ฐ๋ณต ํ์๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด blockdev ๋ช
๋ น์ ์ฌ์ฉํ์ต๋๋ค. ์ต๋ ๋ธ๋ก ํฌ๊ธฐ๋ ์คํ์ ์ผ๋ก ์ป์ด์ก์ผ๋ฉฐ ddpt๋ ์ค์ ๋ก ํฐ ๋ธ๋ก์์๋ ์๋ํ์ง ์์์ต๋๋ค. ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ ๋งค์ฐ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ์์ต๋๋ค.
#!/bin/bash
# first parameter = input device
# second parameter = output device
# device size must be the same
# changing bs variable can reduce speed, max speed should be at bs=32768. 32768 is max setting, lower settings should be calculated dividing by 2
set -o nounset
bs=32768
s=`blockdev --getsz $1`
i=0
while [ $i -le $s ]
do
ddpt of=$2 bs=512 oflag=xcopy,direct if=$1 iflag=xcopy,direct count=$bs verbose=-1 skip=$i seek=$i
i=$(( $i+$bs ))
done
์กฐ๊ธ ํ์ธํด ๋ด ์๋ค! ๋ญ, ์์ ํ์ผ์ด๋ผ md1sum์ผ๋ก 5TB ํ์ผ์ด ๋นจ๋ฆฌ ์์ฑ๋๊ณ ํ์ธ๋์ง๋ ์๋๋ผ๊ตฌ์ :)
root@sales-demo-05:/home/vasilyk# blockdev --getsz /dev/mapper/mpathfs
2516582400
root@sales-demo-05:/home/vasilyk# blockdev --getsz /dev/mapper/mpathfr
2516582400
root@sales-demo-05:/home/vasilyk# mount /dev/mapper/mpathfs /xcopy_source/
mount: /xcopy_source: wrong fs type, bad option, bad superblock on /dev/mapper/mpathfs, missing codepage or helper program, or other error.
root@sales-demo-05:/home/vasilyk# mkfs /dev/mapper/mpathfs
mke2fs 1.44.1 (24-Mar-2018)
Discarding device blocks: done
Creating filesystem with 314572800 4k blocks and 78643200 inodes
Filesystem UUID: bed3ea00-c181-4b4e-b52e-d9bb498be756
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
root@sales-demo-05:/home/vasilyk# mount /dev/mapper/mpathfs /xcopy_source/
root@sales-demo-05:/home/vasilyk# ls -l /xcopy_source/
total 16
drwx------ 2 root root 16384 Aug 19 15:35 lost+found
root@sales-demo-05:/home/vasilyk# head -c 1T </dev/urandom > /xcopy_source/1TB_file
root@sales-demo-05:/home/vasilyk# ls -l /xcopy_source/
total 1074791444
-rw-r--r-- 1 root root 1099511627776 Aug 19 17:25 1TB_file
drwx------ 2 root root 16384 Aug 19 15:35 lost+found
root@sales-demo-05:/home/vasilyk# umount /xcopy_source
root@sales-demo-05:/home/vasilyk# mount /dev/mapper/mpathfr /xcopy_dest/
mount: /xcopy_dest: wrong fs type, bad option, bad superblock on /dev/mapper/mpathfr, missing codepage or helper program, or other error.
root@sales-demo-05:/home/vasilyk# cat xcopy.sh
#!/bin/bash
# first parameter = input device
# second parameter = output device
# device size must be the same
# changing bs variable can reduce speed, max speed should be at bs=32768. 32768 is max setting, lower settings should be calculated dividing by 2
bs=32768
s=`blockdev --getsz $1`
i=0
while [ $i -le $s ]
do
ddpt of=$2 bs=512 oflag=xcopy,direct if=$1 iflag=xcopy,direct count=$bs verbose=-1 skip=$i seek=$i
i=$(( $i+$bs ))
done
root@sales-demo-05:/home/vasilyk# time ./xcopy.sh /dev/mapper/mpathfs /dev/mapper/mpathfr
real 11m30.878s
user 2m3.000s
sys 1m11.657s
๊ทธ ์๊ฐ ์คํ ๋ฆฌ์ง ์์คํ ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์์์ต๋๊น?
๊ณ์ํด์ ๋ฆฌ๋
์ค๋ฅผ ์ฌ์ฉํด๋ณด์.
root@sales-demo-05:/home/vasilyk# mount /dev/mapper/mpathfr /xcopy_dest/
root@sales-demo-05:/home/vasilyk# ls -l /xcopy_dest/
total 1074791444
-rw-r--r-- 1 root root 1099511627776 Aug 19 17:25 1TB_file
drwx------ 2 root root 16384 Aug 19 15:35 lost+found
root@sales-demo-05:/home/vasilyk# mount /dev/mapper/mpathfs /xcopy_source/
root@sales-demo-05:/home/vasilyk# md5sum /xcopy_source/1TB_file
53dc6dfdfc89f099c0d5177c652b5764 /xcopy_source/1TB_file
root@sales-demo-05:/home/vasilyk# md5sum /xcopy_dest/1TB_file
53dc6dfdfc89f099c0d5177c652b5764 /xcopy_dest/1TB_file
root@sales-demo-05:/home/vasilyk#
๋ชจ๋ ๊ฒ์ด ์ ์งํ๋์์ง๋ง ํ
์คํธ ๋ฐ ์ฌ์ฉ์ ๋ฐ๋ฅธ ์ฑ
์์ ์ฌ์ฉ์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค! ์์ค ๋ณผ๋ฅจ์ผ๋ก์ ์ฐ์ ์ค๋
์ท์ ์ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ถ์ฒ : habr.com