1. 基本文件操作

1.1 文件创建与删除

# 创建文件
touch /mnt/mdfs/test.txt
echo "Hello MDFS" > /mnt/mdfs/hello.txt

# 创建目录
mkdir /mnt/mdfs/testdir
mkdir -p /mnt/mdfs/path/to/deep/dir

# 删除文件
rm /mnt/mdfs/test.txt

# 删除目录
rmdir /mnt/mdfs/testdir
rm -rf /mnt/mdfs/path

1.2 文件复制与移动

# 复制文件
cp /mnt/mdfs/hello.txt /mnt/mdfs/hello_copy.txt
cp -r /mnt/mdfs/source_dir /mnt/mdfs/dest_dir

# 移动文件
mv /mnt/mdfs/hello.txt /mnt/mdfs/newname.txt
mv /mnt/mdfs/file.txt /mnt/mdfs/subdir/

1.3 文件权限管理

# 修改文件权限
chmod 755 /mnt/mdfs/script.sh
chmod u+x /mnt/mdfs/executable

# 修改文件所有者
chown user:group /mnt/mdfs/file.txt
chown -R user:group /mnt/mdfs/directory/

2. 高级文件操作

2.1 文件属性查看

# 查看文件详细信息
ls -la /mnt/mdfs/
stat /mnt/mdfs/file.txt

# 查看文件系统使用情况
df -h /mnt/mdfs
du -sh /mnt/mdfs/*

2.2 文件搜索

# 按名称搜索
find /mnt/mdfs -name "*.txt"
find /mnt/mdfs -type f -name "test*"

# 按大小搜索
find /mnt/mdfs -size +100M
find /mnt/mdfs -size -1K

# 按时间搜索
find /mnt/mdfs -mtime -7  # 7天内修改的文件
find /mnt/mdfs -atime +30 # 30天前访问的文件

2.3 文件内容操作

# 查看文件内容
cat /mnt/mdfs/file.txt
less /mnt/mdfs/large_file.txt
head -n 10 /mnt/mdfs/file.txt
tail -f /mnt/mdfs/log.txt

# 文件内容搜索
grep "pattern" /mnt/mdfs/file.txt
grep -r "search_term" /mnt/mdfs/directory/

3. MDFS专用命令

3.1 文件布局查看

# 查看文件在集群中的分布
mdfs-client getfattr -n mdfs.layout /mnt/mdfs/file.txt

# 查看文件的对象映射
mdfs-client ls -l /mnt/mdfs/file.txt

3.2 目录统计信息

# 查看目录统计
mdfs-client df /mnt/mdfs
mdfs-client quota get /mnt/mdfs/user_dir

# 查看目录布局
mdfs-client getfattr -n mdfs.dir.layout /mnt/mdfs/directory

3.3 文件系统快照

# 创建快照
mdfs-client snap create /mnt/mdfs/.snap/snapshot_name

# 列出快照
mdfs-client snap ls /mnt/mdfs

# 删除快照
mdfs-client snap rm /mnt/mdfs/.snap/snapshot_name

4. 性能优化操作

4.1 文件预分配

# 预分配文件空间
fallocate -l 1G /mnt/mdfs/large_file.dat

# 使用dd创建大文件
dd if=/dev/zero of=/mnt/mdfs/test_file bs=1M count=1024

4.2 并行操作

# 并行复制
rsync -av --progress source/ /mnt/mdfs/dest/

# 并行压缩
tar -czf - source_dir | pv | tar -xzf - -C /mnt/mdfs/

4.3 缓存管理

# 清理页面缓存
echo 3 > /proc/sys/vm/drop_caches

# 同步文件系统
sync

5. 监控与诊断

5.1 I/O监控

# 监控文件系统I/O
iostat -x 1
iotop -o

# 监控特定进程I/O
pidstat -d 1

5.2 性能测试

# 顺序读写测试
dd if=/dev/zero of=/mnt/mdfs/test bs=1M count=1024 oflag=direct
dd if=/mnt/mdfs/test of=/dev/null bs=1M iflag=direct

# 随机读写测试
fio --name=random-rw --ioengine=libaio --iodepth=4 \
    --rw=randrw --bs=4k --direct=1 --size=1G \
    --filename=/mnt/mdfs/fio_test

5.3 文件系统检查

# 检查文件系统一致性
mdfs-client fsck /mnt/mdfs

# 检查特定文件
mdfs-client verify /mnt/mdfs/important_file.txt

6. 批量操作

6.1 批量文件处理

# 批量重命名
for file in /mnt/mdfs/*.txt; do
    mv "$file" "${file%.txt}.bak"
done

# 批量权限设置
find /mnt/mdfs -type f -name "*.sh" -exec chmod +x {} \;

6.2 脚本自动化

#!/bin/bash
# 自动备份脚本
BACKUP_DIR="/mnt/mdfs/backup/$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"
rsync -av /important/data/ "$BACKUP_DIR/"

7. 故障处理

7.1 文件恢复

# 从快照恢复文件
cp /mnt/mdfs/.snap/backup_20240101/file.txt /mnt/mdfs/

# 检查文件完整性
md5sum /mnt/mdfs/file.txt
sha256sum /mnt/mdfs/important.dat

7.2 空间清理

# 清理临时文件
find /mnt/mdfs -name "*.tmp" -mtime +7 -delete
find /mnt/mdfs -name "core.*" -delete

# 清理空目录
find /mnt/mdfs -type d -empty -delete

小结

本章介绍了MDFS文件系统的各种操作方法,包括基本文件操作、高级功能使用、性能优化和故障处理。掌握这些操作对于高效使用MDFS至关重要。

下一章将深入介绍MDFS的元数据管理机制。