Techniker vor Ort: Stellen Sie Kafka-Cluster schnell auf Windows Server mit VMware+LVM-Volumes bereit

In letzter Zeit gab es viele schwierige Probleme vor Ort. Die Herausforderung besteht dieses Mal darin, Kafka-Cluster auf 4 Windows Server-Servern bereitzustellen. Dies ist ein relativ seltener Vorgang, da einige abhängige Treiber die Virtualisierung nicht gut unterstützen und nur auf physischen Windows-Maschinen ausgeführt werden können.

Das ursprüngliche Geschäft der oberen Ebene wurde vom B-Team entwickelt und betrieben. Jetzt geht das B-Team unabhängig aus und muss den Geschäftsfluss des B-Teams auf diese 4 Windows-Server übertragen. Wegen der Einführung von Lao Ding habe ich die Migration vor Ort geleitet, aber sie verlief nicht reibungslos, deshalb dokumentiere ich sie hiermit.

1. Windows Kafka weist einen FEHLER auf

Angesichts der Tatsache, dass der Durchsatz von Kafka bei der ersten Migration groß sein kann, können Sie sich darauf vorbereiten, Java + Kafka direkt zu verwenden, um es unter Windows zu erstellen, wenn Sie noch nicht in die Grube getreten sind. Schließlich verfügt das von der offiziellen Website heruntergeladene Kafka über einen Windows-Ordner.

Dieser Ansatz weist große Mängel auf. Wenn die Kafka-Instanz unter Windows das abgelaufene Protokoll löscht, tritt eine Neustartausnahme auf, die dadurch verursacht wird, dass die Datei nicht gelöscht werden kann. Diese Art von Ausnahme tritt häufig auf, nachdem die Nachrichtenwarteschlange in das rollierende Löschfenster eintritt.

ERROR Failed to clean up log for topic.1bc-0 in dir F:\tmp\kafka-logs

Der Grund dafür ist, dass Kafka erkennt, dass das Protokoll abgelaufen ist und die Datei beim Umbenennen in .deleted immer noch belegt ist. Dieses Problem besteht tatsächlich schon seit langem und es gibt eine ähnliche Diskussion in diesem Thread .

2. Speicherkonfiguration der virtuellen Maschine

2.1 Kapazitätsschätzung auf allen Ebenen

Auf dem physischen Windows-System + der virtuellen Linux-Maschine wird Kafka ausgeführt. Dabei sollte auf die Erfassung mehrerer Speicherkapazitätsebenen geachtet werden.

  1. Die Größe der physischen Partition, auf der sich die virtuelle Maschine befindet, in P Bytes.
  2. Die maximale Gesamtgröße der physischen Festplattendatei vmdk oder vdi der virtuellen Maschine beträgt Q Bytes.
  3. Die Partitionsgröße des Kafka-Protokollordners in der virtuellen Maschine beträgt R Bytes.
  4. Die Protokolltage (oder geschätzte Größe) S Bytes, die Kafka in der virtuellen Maschine reservieren wird.

Sicherstellen:

  1. 0,9P >= Q. Seien Sie diesbezüglich sehr wachsam. Selbst wenn R << P, aber Q> P, bleibt das System hängen, nachdem es eine Zeit lang ausgeführt wurde. Dies liegt daran, dass die Festplattendatei der virtuellen Maschine weiter wächst. Das Betriebssystem in der virtuellen Maschine betrachtet die VMDK-Datei mit der „Größe“ Q als physische Festplatte. Wenn das Betriebssystem der virtuellen Maschine die Festplatte verwendet, werden am Ende ständig neue Dateien abgelegt, um eine Fragmentierung zu vermeiden. Selbst wenn die Festplatte der virtuellen Maschine nicht immer voll ist, erreicht die Größe der Festplattendatei der virtuellen Maschine (*.vmdk) nach häufigem Hinzufügen und Löschen die Obergrenze.

Wie in der folgenden Abbildung dargestellt, wird das alte Protokoll von Kafka zwar zu einem späteren Zeitpunkt gelöscht, das neu geschriebene Protokoll füllt jedoch nicht den Anfang der Datei aus, sondern wächst weiter in Vorwärtsrichtung. Dadurch wurde die VMDK-Datei tatsächlich größer. Wenn eine sogenannte 1-TB-VMDK-Datei auf einer physischen Festplatte mit 100 GB abgelegt wird, wird die physische Festplatte allmählich überlastet, selbst wenn das Kafka-Protokoll nur eine Stunde lang aufbewahrt wird.

Fügen Sie hier eine Bildbeschreibung ein2. 0,9R >= S. Dies bedeutet, dass das Kontingent der virtuellen Maschine Kafka nicht zu eng eingestellt werden kann. Wenn das Protokoll beispielsweise eine 10-GB- oder 80-GB-Partition pro Tag benötigt, ist es am besten, es nicht so einzustellen, dass es nach 7 Tagen gelöscht wird, sondern es ist besser, es auf 5 Tage festzulegen. Weil einige Geschäftslogiken oder Spitzenaufträge plötzlich viele thematische Daten generieren können.

2.2. Hinzufügen eines virtuellen Festplatten-Arrays zu einer virtuellen Maschine

Die Festplatte der virtuellen Maschine von VMWare unterstützt maximal 8 TB. Früher reichten gewöhnliche Knoten aus. Aber mittlerweile beginnen viele Server bei 32 TB. Darüber hinaus gibt es für Anwendungen wie diese, die Kafka als semi-langfristigen Speicherpool nutzen möchten, Konfigurationen mit mehr als 64 TB. Wenn Sie auf diese Weise das Festplattenarray jeder virtuellen Maschine verwenden möchten, können Sie nur berücksichtigen, wie viele Festplattengruppen jeder virtuellen Maschine entsprechend der jeweiligen Kapazität und den Einschränkungen im obigen Abschnitt zugewiesen werden.

Gleichzeitig müssen wir der Einfachheit halber die Anzahl der Festplatten einheitlich entsprechend der Größe des größten physischen Festplatten-Arrays konfigurieren und sie dann auf dem kleinen Festplatten-Array-Computer in Einheiten von 8 TB schneiden. LVM-Volumes unterstützen dieses flexible Zuschneiden.

Festplatte der virtuellen MaschineVerwandeln Sie alle Datenfestplatten in physische GPT-Partitionen. Ich werde Yuanruyi C direkt bitten, die spezifische Methode zu kennen, und sie dann in einer kleinen Menge mit Baidu kombinieren, um dies auf einmal zu erledigen.

Verstehen Sie beim ersten Durchgang schnell den grundlegenden Prozess:

问:在 Linux 下如何把多块新磁盘变成一个整体的 LVM 卷
答:
你可以按照以下步骤在 Linux 下将多块新磁盘变成一个整体的 LVM 卷:
将新磁盘连接到电脑上并且使用 fdisk 工具来创建一个新的分区。
将创建的新分区标注为 LVM 类型。
使用 pvcreate 命令来创建一个物理卷,并将新分区添加到该物理卷中。
使用 vgcreate 命令来创建一个卷组,并将物理卷添加到该卷组中。
使用 lvcreate 命令来创建一个逻辑卷,并将卷组分配给该逻辑卷。
格式化逻辑卷成一个文件系统。
挂载逻辑卷到指定的目录。

完整的命令如下:
fdisk /dev/sdb
t
8e
pvcreate /dev/sdb1
vgcreate vg_data /dev/sdb1
lvcreate -L 100G -n data_lv vg_data
mkfs.ext4 /dev/mapper/vg_data-data_lv
mount /dev/mapper/vg_data-data_lv /data
注意:以上步骤仅适用于 CentOS 和 Ubuntu 等 Linux 操作系统。

Ändern Sie beim zweiten Mal die Art der Abfrage und überprüfen Sie den Befehl im Detail, um ihn erneut zu bestätigen.

我有三块新硬盘,插在了计算机上,被Linux系统识别为 /dev/sdc, /dev/sdd, /dev/sde。这三块硬盘都是8TB大小,请告诉我如何把他们组成一个完整的连续LVM卷,并挂载到/var/local/kafka-logs 下。


可以按照以下步骤将三块硬盘组成一个完整的连续LVM卷,并挂载到/var/local/kafka-logs下:

首先,在Linux系统中打开终端,输入命令sudo fdisk -l,查看硬盘识别情况。

确认三块硬盘的设备名称,即/dev/sdc, /dev/sdd, /dev/sde。

输入命令sudo pvcreate /dev/sdc /dev/sdd /dev/sde,创建物理卷。

输入命令sudo vgcreate vg_kafka /dev/sdc /dev/sdd /dev/sde,创建卷组vg_kafka。

输入命令sudo lvcreate -n lv_kafka -l 100%FREE vg_kafka,创建逻辑卷lv_kafka,其大小为三块硬盘总容量。

输入命令sudo mkfs.ext4 /dev/vg_kafka/lv_kafka,格式化逻辑卷。

将逻辑卷挂载到/var/local/kafka-logs下,输入命令sudo mkdir /var/local/kafka-logs;sudo mount /dev/vg_kafka/lv_kafka /var/local/kafka-logs。

如果需要开机自动挂载,可以编辑/etc/fstab文件,在其中添加以下一行内容:
/dev/vg_kafka/lv_kafka /var/local/kafka-logs ext4 defaults 0 0

以上步骤完成后,三块硬盘就被组成了一个完整的连续LVM卷,并挂载到了/var/local/kafka-logs下。

Nach Abschluss befindet sich in der virtuellen Maschine eine virtuelle LVM-Festplatte mit 24 TB.

2.3 Verwenden Sie die grafischen Tools von LVM, um Maschine für Maschine anzupassen

Wir hoffen immer noch auf eine grafische Benutzeroberfläche, da wir in Zukunft auf jedem Server nach Bedarf zuschneiden müssen. Welches soll ich verwenden? Ich habe zuvor den Partitionsmanager von KDE verwendet, der sehr einfach zu bedienen ist:

$ sudo pacman -S partitionmanager

Nach der Installation ist es wirklich nicht bequem:
KDE-PartitionsmanagerBeachten Sie, dass Sie vor dem Anpassen mit der rechten Maustaste klicken und zunächst die bereitgestellte LVM-Partition deinstallieren (entspricht umount). Ansonsten sind viele Optionen ausgegraut. Das Beste an dieser Sache ist, dass Sie damit das Angeln lernen können. Nach jedem Abschluss listet das Protokoll die entsprechenden Befehle jedes Schritts auf.
Fügen Sie hier eine Bildbeschreibung ein

KDE 分区管理器:SMART 状态报告
日期: 	2023/5/11 上午4:30
程序版本: 	22.12.3
后端程序: 	pmsfdiskbackendplugin (1)
KDE 程序框架版本: 	5.103.0
机器: 	Linux user-kafka 6.1.25-1-MANJARO #1 SMP PREEMPT_DYNAMIC Thu Apr 20 13:48:36 UTC 2023 x86_64

将分区 “/dev/kafka/kafka” 从 46.87 TiB 缩小为 7.81 GiB
任务:检查分区 “/dev/kafka/kafka” 的文件系统
命令:e2fsck -f -y -v /dev/kafka/kafka
检查分区 “/dev/kafka/kafka” 的文件系统:成功
任务:调整分区 “/dev/kafka/kafka” 的文件系统大小为 2,000 个扇区

正在将文件系统的大小从 12,287,994 个扇区调整为 2,000 个扇区。


命令:resize2fs /dev/kafka/kafka 16384000s
调整分区 “/dev/kafka/kafka” 的文件系统大小为 2,000 个扇区:成功
任务:设置分区 “/dev/kafka/kafka” 的物理结构:起始扇区:0,长度:2,000
命令:lvm lvresize --force --yes --extents 2000 /dev/kafka/kafka
设置分区 “/dev/kafka/kafka” 的物理结构:起始扇区:0,长度:2,000:成功
任务:检查分区 “/dev/kafka/kafka” 的文件系统
命令:e2fsck -f -y -v /dev/kafka/kafka
检查分区 “/dev/kafka/kafka” 的文件系统:成功
将分区 “/dev/kafka/kafka” 从 46.87 TiB 缩小为 7.81 GiB:成功

Stellen Sie abschließend sicher, dass die virtuellen Festplatten, die die Größe des physischen Festplatten-Arrays überschreiten, aus der physischen Datenträgergruppe entfernt werden:
Fügen Sie hier eine Bildbeschreibung ein
Hinweis! Dieser Schritt ist von entscheidender Bedeutung, da sonst die Festplatte der virtuellen Maschine möglicherweise noch größer wird, da LVM, wenn er die physische Festplatte im Strip-Modus verwendet, weiterhin alle physischen Festplatten in der Gruppe verwendet.

3. Laden Sie Kafka herunter und konfigurieren Sie es

Hier wird die offizielle Website zur Installation und Konfiguration des Clusters verwendet. Es ist notwendig, auf das Problem der Kreuzung von Netzwerksegmenten zu achten. Wenn Kafka mehrere Netzwerkkarten gleichzeitig und im NAT-Modus der virtuellen Maschine verwenden möchte, achten Sie besonders auf die NAT-Konfiguration von VMWare.

  1. Verwenden Sie eine statische IP-Adresse + Gateway, um zu vermeiden, dass VM DHCP eine aktive IP-Adresse für NAT zuweist.
  2. Wenn VMNat nach der Konfiguration immer noch keine Verbindung herstellen kann, achten Sie bitte darauf, es neu zu starten.
  3. Die Windows-Host-Firewall-Ports 2181, 9092 usw. müssen geöffnet sein.

4. Leistungsoptimierung

Der Energiemodus des Hostservers muss „maximale Leistung“ sein und die Energieoptionen einschließlich BIOS, UEFI und Windows dürfen nicht auf „Energiesparen“ oder „Ausgewogen“ eingestellt sein. Andernfalls können virtuelle Maschinen wie VMWare stillgelegt werden. Verwenden Sie in der Zwischenzeit den Befehl

bcdedit /set hypervisorlaunchtype off

Schließen Sie Hyper-V von Windows, da sonst die Leistung der virtuellen Maschine beeinträchtigt wird.

Nach solchen Anpassungen ist die Gesamtleistung sehr gut und unterscheidet sich kaum von der einer physischen Maschine.

Supongo que te gusta

Origin blog.csdn.net/goldenhawking/article/details/130587750
Recomendado
Clasificación