Solaris 9(Sparc) 시스템에서 SLES11(x84_64) 시스템으로 대량의 데이터를 복사해야 합니다.
Solaris 시스템은 상당히 오래되었으며 네트워크를 통해 데이터를 전송하려면 며칠 간의 가동 중지 시간이 필요합니다.
내 목표는 SAN에서 Solaris 시스템으로 LUN을 할당하고 그런 방식으로(LAN이 아닌 패브릭을 통해) 데이터를 복사한 다음 LUN을 대상 Linux 시스템에 다시 할당하는 것입니다.
내 문제는 내 Linux 상자에서 UFS 파일 시스템을 마운트하는 방법을 모르는 것 같다는 것입니다.
이것은 Solaris에서 볼 수 있는 현재 파티션 테이블입니다:
Volume name = < >
ascii name = <HITACHI OPEN-V -SUN 7006 ffe00000>
bytes/sector = 512
sectors = 4292870143
accessible sectors = 4292870110
Part Tag Flag First Sector Size Last Sector
0 root wm 34 128.00MB 262177
1 swap wu 262178 128.00MB 524321
2 unassigned wm 0 0 0
3 unassigned wm 0 0 0
4 unassigned wm 0 0 0
5 unassigned wm 0 0 0
6 usr wm 524322 2.00TB 4292853725
8 reserved wm 4292853726 8.00MB 4292870109
Linux 시스템에서 fdisk를 사용하여 목록을 나열하려고 하면 다음과 같은 결과가 나타납니다.
# fdisk -l /dev/sdl
Disk /dev/sdl: 2199.0 GB, 2199023255552 bytes
255 heads, 63 sectors/track, 267349 cylinders, total 4294967296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdl doesn't contain a valid partition table
그러나 장치 매퍼는 파티션을 인식하는 것 같습니다(비록 1로 오프셋하기는 하지만).
lrwxrwxrwx 1 root root 7 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087 -> ../dm-3
lrwxrwxrwx 1 root root 8 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087_part1 -> ../dm-38
lrwxrwxrwx 1 root root 8 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087_part2 -> ../dm-39
lrwxrwxrwx 1 root root 8 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087_part7 -> ../dm-40
lrwxrwxrwx 1 root root 8 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087_part9 -> ../dm-41
그런 다음 파일 시스템을 마운트하려고 시도했지만 결과는 다음과 같습니다.
# mount -t ufs -o ro,ufstype=sun /dev/disk/by-id/scsi-360060e8006cfd3000000cfd300000087-part7 /ldev87
mount: wrong fs type, bad option, bad superblock on /dev/mapper/360060e8006cfd3000000cfd300000087_part7,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
dmesg는 더 이상 정보를 제공하지 않습니다. 설치하려고 할 때마다 한 줄만 입력하세요.
[173168.020980] ufs_read_super: bad magic number
ufs 파일 시스템을 지원하는 것 같습니다.
# grep ufs /proc/filesystems
ufs
# modinfo ufs
filename: /lib/modules/3.0.101-0.15-default/kernel/fs/ufs/ufs.ko
license: GPL
srcversion: 4BC9796D2E230B27387BE46
depends:
supported: yes
vermagic: 3.0.101-0.15-default SMP mod_unload modversions
signer: SUSE Linux Enterprise Secure Boot Signkey
sig_key: 3F:B0:77:B6:CE:BC:6F:F2:52:2E:1C:14:8C:57:C7:77:C7:88:E3:E7
sig_hashalgo: sha256
# less /proc/modules | grep ufs
ufs 79510 0 - Live 0xffffffffa07e4000
Linux는 특정 크기(2TB 미만)의 Sun 볼륨만 열 수 있습니까? 아니면 Linux 시스템이 읽을 수 있는 파일 시스템을 준비하기 위해 Solaris 시스템에서 특별한 작업을 수행해야 합니까?
누군가 아이디어가 있기를 바랍니다.
고쳐 쓰다 같은 문제를 겪게 될 향후 방문자들을 위해 말씀드리자면 제 문제는 LUN의 크기인 것 같습니다. 2TB는 작동하지 않으며 1.8TB도 작동하지 않지만 1TB는 작동합니다. 실제 한계가 어디인지 알아낼 시간이 없었지만 분명히 한계가 있는 것 같습니다.